2012-10-26 5 views
0

내 스크립트를 하나 개의 이미지로 여러 이미지를 접착제하지만 결과 이미지가 하나의 색상 접착제 이미지에서 첫 번째 이미지에 지배가 설정 :단일 색상

enter image description here

그러나 입력 4 이미지 (다른 색상 노란색 , 녹색, 파란색, 빨간색). 세트의 첫 번째 이미지 만 올바르게 표시됩니다.

$images = array(); 

foreach ($fileNames as $fileName) { 
    $image = imagecreatefrompng($path . $fileName); 
    if ($image) { 
     $images[] = $image; 
    } 
} 

// ... 

$img = imagecreate($w, $h); 

$x = 0; 
foreach ($images as $image) { 
    $width = imagesx($image); 
    $height = imagesy($image); 

    imagecopy($img, $image, $x, 0, 0, 0, $width, $height); 
    $x += $width; 
} 

또 다른 하나의 예 (풀 세트에서 첫 번째 이미지는 파란색과 다른 경우 다른 색) :

enter image description here

+0

잘 모르겠습니다. 예제를 보여줄 수 있습니까? –

+1

무엇이 문제입니까? – Pitchinnate

+0

예제를 볼 수 있습니까? – bodi0

답변

2

당신은 아마 팔레트가에서 ​​이동합니다 이에 팔레트 이미지를 혼합하는 첫 번째 대상 이미지.

적합한 크기의 트루 컬러 이미지를 만든 다음 TrueColor로 변환 한 다음 모든 이미지를 그 이미지로 복사합니다.

그런 다음 대상 이미지를 약간 팔레트로 축소 할 수 있습니다 (약간 "해제 된"색이 나타날 수도 있음).

$img = imageCreateTrueColor($w, $h); 
// Add transparency management if needed 

$x = 0; 
foreach ($images as $image) { 
    $width = imagesx($image); 
    $height = imagesy($image);  
    imagecopy($img, $image, $x, 0, 0, 0, $width, $height); 
    $x += $width; 
} 
// Reduce image to non-dithered, 256-color paletted if needed 
// imageTrueColorToPalette($img, False, 256); 
+0

감사합니다. 이제 작동합니다. –