Вопрос по GD...

  • Автор темы -=GogA[qwe]=-
  • Дата начала

-=GogA[qwe]=-

Guest
Вопрос по GD...

Возникла такая проблема. Создаю изображение в Photoshope, сохраняю его в *.png и пытаюсь подключить как фон к нужному изображению:
PHP:
$imt=imagecreatefrompng("fon.png");
imagecopy ($im, $imt, 0,0, $tx, $ty, $cx, $cy);
И получаю, что польтра меняется, и притом заметно. Библиотека GD...
Почему и как исправить?
 

-=GogA[qwe]=-

Guest
PHP Version 4.2.2:
System Windows NT 5.1 build 2600
Build Date **
Server API CGI
Virtual Directory Support enabled
Configuration File (php.ini) Path **
Debug Build no
Thread Safety enabled
gd:
GD Support enabled
GD Version 1.6.2 or higher
FreeType Support enabled
FreeType Linkage with TTF library
JPG Support enabled
PNG Support enabled
WBMP Support enabled

ziba, а как в документации решалась проблема?
 

ziba

Guest
Во-первых, поставь версию поновее.
Во-вторых:
Английский знаешь?
http://www.boutell.com/gd/manual2.0.22.html#gdImageCopy

Important note on copying between images: since different images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied.

-~{}~ 21.03.04 17:04:

Вкратце, GD производит следующие действия по порядку:
1. Ищет RGB значение
2. если не находит, то ищет идентичную запись в палитре
3. затем пытается найти ближайший цвет.
 

-=GogA[qwe]=-

Guest
И как с этим быть???
Как сделать, чтобы GD получал нужное RGB значение... Ведь все графические редакторы и смотрелки всё нормально видят...
Или как можно создать идентичную запись в палитре???
 

ziba

Guest
Ты какую картинку в какую пытаешься скопировать?
PNG в PNG? Если так, то в мануале:

If you need to merge 2 png's (or presumably 2 gifs) with different color palettes, I have found this is the function to use. Just set pct to 99, and you are rocking. With pct set to 100, or imagecopy for that matter, the palette seems to go wonky. (It probably just uses the palette of the source image. but don't quote me on that).

Попробуй выставить последний параметр на 99.

И еще раз, обнови GD.
 

-=GogA[qwe]=-

Guest
Если я правильно понял, то функция imagecopy:p
PHP:
imagecopy (resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)
И какой параметр ставить 99? Описание вырвано из контекста, и не совсем понятно о чём говориться??
 

Dmitry22

Guest
У меня таже штука была...на Денвере...потом поставил ПХП новый и все заработало.
 

ziba

Guest
Надо использовать функцию
int imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct )
И вот последний параметр на 99 выставить.
 

-=GogA[qwe]=-

Guest
ziba, спасибо... Всё действительно работает... только зсе я поставил 80:)
 
Сверху