странный глюк с jpg-ами
пример php кода которым я обрабатывал jpg
предположительно здесь может буть абсолютно любой код(не было времени проверить)
$dp = opendir($dirName);
chdir($dirName);
$currentFile = "";
while ($currentFile !== false){
$currentFile = readDir($dp);
if (!preg_match ("/[а-яА-Я]+/", $currentFile)){
$ofWord = substr($currentFile, strlen($currentFile) - 3, 3);
if ($ofWord == "jpg" || $ofWord == "JPG"){
$t = getimagesize($currentFile);
$width_in = $t[0];
$height_in = $t[1];
if ($width_in > $height_in){
$pastWidth = "100";
$pWidth = "60";
$pHeight = 60*($height_in/$width_in);
$pHeight = (integer)$pHeight;
$size = "width=60 height=".$pHeight;
$padding = " padding: 6px 0 0 0;";
} else {
$pastWidth = 100*($width_in/$height_in);
$pastWidth = (integer)$pastWidth;
$pWidth = 60*($width_in/$height_in);
$pWidth = (integer)$pWidth;
$size = "width=".$pWidth." height=60";
$padding = " padding: 0;";
}
$fileName = substr($currentFile, 0, strlen($currentFile) - 4);
$fileNew = $currentFile;
$url = "http://www.kotya.ru/Editor_of_Gallery/editing_foto/".$fileNew;
echo " <td style=\"text-align: center; padding: 0;\">
<div class=\"bgMenu1\">
<div style=\"width: 60px; height: 64px;$padding border: 0px solid #007bbe;\">
<a href=\"\" onClick=\"java script:wraitImg('$pastWidth','$fileNew');return(false);\">
<img src=\"$url\" $size></a>
</div><b style=\"cursor: default;\">$fileName<b></a>
</div>
</td>\n";
}
}
}
closedir($dp);
ничего особенного. просто вывожу картинки.
Сам глюк.
пропустил через этот код пару дюжин необработанных фотографий снятых на цыфровик.
результат: все вертикальные фотографии он повернул на 90 градусов
странно
я нашел решени проблемы
пересохранил все фотки в фотошопе(просто открыл сохранил в тотже файл и закрыл) и глюк сразу пропал.
все фотки выводит так как надо, ничего не переворачивает и тд
Так вот сам вопрос
кто знает откуда такой странный глюк вообще может вылезти, взятся и вообще?
предположительно это цифра что-то не то добовляет в файл
кто знает откуда такой странный глюк вообще может вылезти, взятся и вообще?
предположительно это цифра что-то не то добовляет в файл
Возможно, это из-за тега EXIF "Orientation", Photoshop его понимает и использует, а GD, по-видимому, нет.
Можно читать этот метатег с помощью функции exif_read_data() и соответствующим образом поворачивать (imagerotate()).
Некоторые камеры автоматически изменяют этот тег в зависимости от своей ориентации.
Давайте будем вежливыми. Это раз.
Два - "Цыфровик" снимает вертикальные кадры, если фотоаппарат повернут и он об этом знает. У jpg есть свойство "поворот", насколько я знаю. Его понимают не все старые программы.
Часто возникали проблемы с jpg в PHP и у меня. PHP, видимо, очень критично относится к формату файла и неприемлет грубых ошибок внутри него. А, как это ни печально, не все программы делают "правильные" jpg файлы. Да, для решения проблемы достаточно пересохранить файлы.
Прошу обратить внимание, что PHP, в зависимости от того, как он настроен, "кушает" не любого размера jpg и прочие файлы.
Если знаеш способ решения проблемы, то причина появления этой проблемы не столь уж и вожна.
Я задал этот вопрос чисто для общего развития
Благодарю Dolonet и Carpus за разяснение
Часто возникали проблемы с jpg в PHP и у меня.
Ну к слову замечу, что это все же проблемы GD, чем пыха. И решитть их можно в принципе сменой либы. На ImageMagick к примеру.
Это понятно. При условии, что есть root SSH к серверу
Согласен. Я сам хостер. Ковырять сервер бесплатно или за копейку не буду. Может пострадать много других клиентов, у которых все работает на данной конфигурации.