2012-10-26 108 views
1

我已經嘗試了很多解決方案和事實,並且到了不知道還有什麼要做的地步。將PNG合併爲JPG或其他php

下面的圖片是一個PNG( 「爲cover.png」):

cover.png

你將有一個空白橢圓形真的是完全透明的。用PHP,我試圖把它融合到這個畫面(「lapiz.jpg」):

lapiz.jpg

然而,儘管我怎樣試圖拿不到第一圖像的淨空是透明的而是完全空白,覆蓋應該融化的圖像。

現在這是我的代碼:

$img_user = 'fotos/lapiz.jpg'; 
$img_user_type = getImageInfo($img_user,'type'); 
$posX = 404; 
$posY = 2; 
$width = getImageInfo($img_user,'width'); 
$height = getImageInfo($img_user,'height'); 

$stamp = 'fotos/cover.png'; 

switch($img_user_type) 
{ 
    case 'jpeg': 
     $img_user_create = imagecreatefromjpeg($img_user); 
     break; 
    case 'gif': 
     $img_user_create = imagecreatefromgif($img_user); 
     break; 
    case 'png': 
     $img_user_create = imagecreatefrompng($img_user); 
     break; 
} 

$im = imagecreatefrompng($stamp); 

imagealphablending($im, false); 
imagesavealpha($im, true); 

imagecolortransparent($im, imagecolorallocate($im, 255, 255, 255)); 

imagecopymerge($img_user_create, $im, $posX, $posY, 0, 0, $width, $height, 100); 

header('Content-Type: image/png'); 
imagepng($im); 

ImageDestroy($im); 
ImageDestroy($img_user_create); 

什麼我可以做錯了什麼?

+2

您用過ImageMagick的?它使這件事變得很容易。 –

+0

Plz搜索! http://stackoverflow.com/questions/2269363/put-png-over-a-jpg-in-php http://stackoverflow.com/questions/1394061/how-to-merge-transparent-png-with-image -using-php – Joey

+0

第一個圖像優化:https://dl.dropbox.com/u/6576414/cover.png –

回答

1

junihh解決了這個使用imagemagick庫,代碼如下:

$img1 = new Imagick('fotos/lapiz.jpg'); 
$img2 = new Imagick('fotos/cover.png'); 
$posX = 404; 
$posY = 2; 
$img2->compositeImage($img1, imagick::COMPOSITE_DSTOVER, $posX, $posY); 

header('Content-type: image/png'); 
echo($img2);