簡體   English   中英

如何使用php合並jpg和png圖像?

[英]How to merge jpg and png images using php?

這是png圖片:

在此處輸入圖片說明

這是jpg圖片:

在此處輸入圖片說明

兩者的寬度和高度均相同。

預期產量:

在此處輸入圖片說明

我正在使用的代碼:

<?php
header('content-type: image/jpeg');
if(isset($_GET['source'])){
$source = $_GET['source'] ;
$watermark = imagecreatefrompng('png.png');
$watermark_height = imagesy($watermark);
$watermark_width = imagesx($watermark);

$image = imagecreatetruecolor($watermark_width,$watermark_height);
$image = imagecreatefromjpeg($source);

imagecopymerge($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100  );
imagepng($image);

}
?>

電流輸出:

在此處輸入圖片說明

您能幫我獲得預期的輸出嗎?

您必須啟用Alpha通道。 要使用合並功能並保留Alpha通道,可以使用此處發布的功能: http : //de2.php.net/manual/en/function.imagecopymerge.php#92787

您的代碼將如下所示:

header('content-type: image/png');

   function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
        // creating a cut resource
        $cut = imagecreatetruecolor($src_w, $src_h);

        // copying relevant section from background to the cut resource
        imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);

        // copying relevant section from watermark to the cut resource
        imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);

        // insert cut resource to destination image
        imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
    }


$source ='b.jpg';
$watermark = imagecreatefrompng('a.png');
$watermark_height = imagesy($watermark);
$watermark_width = imagesx($watermark);

$image = imagecreatetruecolor($watermark_width,$watermark_height);
$image = imagecreatefromjpeg($source);

imagecopymerge_alpha($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100  );
imagepng($image);

否則,alpha通道將填充顏色,並且背景將被完全填充。

注意:您還將內容類型image / jpeg和輸出函數imagepng混合在一起。 (我在解決方案中選擇了image / png和imagepng。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM