2

透明なpng画像をロードし、それを使用して背景色を設定しようとするたびにsetimagebackgroundcolor()透明になります

    $input_img = new Imagick();

    $input_img->setBackgroundColor("#ff0000");

    $input_img->readImage("transparent.png");

    $input_img->setimagebackgroundcolor("#00ff00");

    $input_img->setImageFormat("png");

    $input_img->setimagebackgroundcolor("#ff00ff");

    $input_img->writeimage("image.png");
4

3 に答える 3

0

コードの最初の行は、色の新しい Imagickpixel オブジェクトを設定します。2 行目は新しいフレームを作成し、1920 と 1200 はもちろん寸法です。

$color = new ImagickPixel("white");

$input_img->newImage(1920,1200, $color)
于 2015-05-15T10:05:59.840 に答える
0

トリックは次を使用しています: $im = $im->flattenImages();:

<?php
$im = new Imagick($filename);

$im->setImageBackgroundColor('#ffffff');
$im = $im->flattenImages();

$im->setImageFormat("jpeg");
$im->setImageCompressionQuality(95);
$im->writeImage($filename);
于 2015-12-03T11:03:38.230 に答える
-1

これを試して!

$imput_img->setBackgroundColor(new ImagickPixel('blue'));
于 2013-04-19T14:51:34.817 に答える