|
|
|
|
|
для: Sergey89
(09.01.2007 в 10:29)
| | Не важно в каком месте отправлять заголовок, кроме того, что он должен быть до imagejpeg(). Важно, чтобы с контент-тайпом "картинка" ничего кроме картинки не выводилось. Но суть верная: из всех функций вывода на экран, должна остаться только imagejpeg() | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2007 в 23:14)
| | Убери в своем скрипте все эхо и заголовок отправляй перед отправкой изображения в браузер. | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2007 в 23:14)
| | Попробуйте использовать ob_start() и ob_end_flush() | |
|
|
|
|
|
|
|
для: Serg_l
(08.01.2007 в 23:10)
| | Это совсем другое дело. Тут надо еще и убедиться в том, что не было диагностических сообщений от php. | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2007 в 22:54)
| | Вот рабочий вариант - сейчас буду разбираться - что не так :)
<?php
$image = "фото.jpg";
if (!$max_width)
$max_width = 50;
if (!$max_height)
$max_height = 50;
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = ImageCreate($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
header("Content-type: image/jpeg");
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);
?>
|
| |
|
|
|
|
|
|
|
для: Serg_l
(08.01.2007 в 22:19)
| | Вероятно, в строке символ < не является первым байтом файла. | |
|
|
|
|
|
|
|
для: NIK
(08.01.2007 в 22:14)
| | весь скрипт открываю как есть через IE - он приведен полностью выше
кроме него ни картинок, ни текста
... если правильно полял вопрос | |
|
|
|
|
|
|
|
для: Serg_l
(08.01.2007 в 22:03)
| | до того как послать заголовок в браузере не выводится текст, изображения ? Возможно ошибка из-за этого. | |
|
|
|
|
|
|
| Скрипт работает нормально и проходит промежуточные проверки
только в итоге выдает ошибку - Warning: Cannot modify header information - headers already sent by (output started at...
Фото выводит в виде символов - ...Ж:щgщW‘Щh·3ґ«$!e”HV...
<?php
// Резак превьюшек
header ("Content-type: image/jpeg");
$img = "фото.jpg";
// Уменьшение до заданных разметров 50 * 50
// Задаем параметры результата - ширина/высота
if (!$max_width)
$max_width = 50;
if (!$max_height)
$max_height = 50;
// Массив размеров исходного фото - вытаскиваем его ширину/высоту
$size = GetImageSize($img);
print_r ($size); // Проверяем - массив печатается нормально
$width = $size[0];
$height = $size[1];
// Получаем коэффициент масштабирования делением парам-ов результата на парам-ры загружаемого фото
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
// Вычисляем ширину/высоту с учетом горизонтальн/вертик кадра и обрезанной стороной - ширина/высота
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
// Получаем идентификатор, указывающий на изображение
if($src = ImageCreateFromJpeg($img))
echo ("src от имагекреатера готов"); // Проверяем - здесь работает
// Создаем пустой холст с вычисленными размерами
if($dst = ImageCreateTrueColor($tn_width,$tn_height))
echo ("dst от имагекреат-трутайпа готов"); // Проверяем - здесь работает
// Копируем прямоугольную область изображения $src на изображение $dst
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
// Выводим на экран превьюшку с качеством по-умолчанию
imagejpeg ($dst);
?>
|
Как вывести нормальное изображение? | |
|
|
|
|