поведение imagecopyresampled в php 4.3.8

kompo

Guest
поведение imagecopyresampled в php 4.3.8

Всем привет.

После смены версии php с 4.3.6 до 4.3.8, столкнулся с тем, что imagecopyresampled стала некорректно работать. А именно перестала воспринимать координаты x,y, которые указывают на ту часть исходного изображения, с которых надо начинать резать. Все время начинает с 0,0, чтобы там не было написано.

Читал changelog, смотрел форум - ничего хорошего для себя не нашел.

Заменил сейчас ее на imagecopyresized, она работает как и прежде, но качество мерзкое получается.

В какую сторону копать?

Спасибо.
 

StUV

Rotaredom
[skip]

-~{}~ 03.09.04 11:35:

исходник кинь свой - то что касается ГД-функций...
 

kompo

Guest
по поводу версии gd: libgd2-2.0.4

по поводу исходника.. ничего сверхъестественного там нет.
аргументы функций imagecopyresized и imagecopyresampled одинаковые. одна работает - другая нет с одинаковым набором аргументов. так что сомневаться в правильности кода - у меня мыслей нет.
 

StUV

Rotaredom
Замечание: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().
-----------------------
(c) man ([m]imagecopyresampled[/m])
это учтено ?
 

kompo

Guest
Автор оригинала: StUV
это учтено ?
так я жалуюсь не на бледность получаемых изображений, а на то, что резать исходное изображение оно начинает с (0,0), а не с явно указанных например (100,100).
 

StUV

Rotaredom
сорри, торможу что-то

-~{}~ 03.09.04 12:04:

кинь все-таки кусок кода - попробую у себя...

-~{}~ 03.09.04 12:27:

Apache/1.3.31 (Win32: win2000prof) PHP/4.3.8
imagecopyresampled - отлично работает
возможно все-таки ошибка в коде ?
 

kompo

Guest
Я все же не буду кидать код. Так как проблема не в нем. Так как на другой машине он у меня нормально отрабатывает.

На сервере с 4.3.8 и libgd2-2.0.4 не хочет.
А на сервере с 4.3.6 и gd-2.0.15_1,1 работает.

Я надеялся, может быть это известная "фича" какая-нибудь.

Хотя для очистки совести кину код...
Тестовый специально для этого случая. Должен показывать машинку :D

PHP:
$jpegqual="50";
$src="http://www.elvek.ru/test_gd_image.jpg";
$new = imagecreatetruecolor(100,100);
$img = imagecreatefromjpeg ($src);
imagecopyresampled($new, $img, 0, 0, 200, 200, 100, 100, 150, 100); 
imagedestroy($img);
header("Content-Type: image/jpeg");
imagejpeg($new,"",$jpegqual);
Как вариант решения проблемы - надо что-то переставить...
 
Сверху