簡體   English   中英

將PNG轉換為JPG,並使用ImageMagick和PHP將透明背景設置為白色

[英]Convert PNG to JPG and set transparent background to white with ImageMagick and PHP

在將圖像從PNG轉換為JPEG時,如何使用ImageMagick(使用php擴展名)將透明背景設置為白色?

在編寫本文時,您尚未指定要使用的擴展名,但如果您使用的是命令行,則命令為:

convert image.png -background white -flatten -alpha off image.jpg

可以在Masking Usage文檔中找到更多信息。

以IMagick為例,我認為你可以這樣做:

(完全未經測試,從未使用過IMagick並且沒有安裝它來測試)

$image = new IMagick('image.png');

$flattened = new IMagick();
$flattened->newImage($image->getImageWidth(), $image->getImageHeight(), new ImagickPixel("white"));

$flattened->compositeImage($image, imagick::COMPOSITE_OVER, 0, 0);

$flattened->setImageFormat("jpg");
$flattened->writeImage('image.jpg');

$image->clear();
$image->destroy();
$flattened->clear();
$flattened->destroy();

如果您使用的是Imagick擴展程序:

<?php
// load the source transparent png
$i = new IMagick('image.png');

// set the background to white
// you can also use 'rgb(255,255,255)' in place of 'white'
$i->setImageBackgroundColor(new ImagickPixel('white'));

// flattens multiple layers
$i = $i->flattenImages();

// the output format
$i->setImageFormat('jpg');

// save to disk
$i->writeImage('image.jpg');

// and/or output directly
// header('Content-Type: '.$i->getFormat());
// echo $i->getImageBlob();

// cleanup
$i->clear();
$i->destroy();

暫無
暫無

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

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