黒の背景のない正しい画像を取得するには、次の戦略に従う必要があります。
最初に新しい画像アイテムを作成します。アルファブレンドをfalseに設定します。savealphaをtrueに設定します。透明な長方形でファイルします。灰色の画像をその上にコピーします。
あなたのコードはこれに似ています:
switch ($handle->file_src_name_ext) {
case 'gif':
$sourceIm = imagecreatefromgif($savepath.$handle->file_dst_name);
break;
case 'jpg':
$sourceIm = imagecreatefromjpeg($savepath.$handle->file_dst_name);
break;
case 'png':
default:
$sourceIm = imagecreatefrompng($savepath.$handle->file_dst_name);
break;
}
$iw = imagesx($sourceIm);
$ih = imagesy($sourceIm);
$im = imagecreatetruecolor($iw, $ih);
if (function_exists('imagecolorallocatealpha')) {
imagealphablending($im, false);
imagesavealpha($im, true);
$transparent = imagecolorallocatealpha($im, 255, 255, 255, 127);
imagefilledrectangle($im, 0, 0, $iw, $ih, $transparent);
}
if ($sourceIm ) {
imagefilter($sourceIm, IMG_FILTER_GRAYSCALE);
}
imagecopyresampled($im, $sourceIm, 0, 0, 0, 0, $iw, $ih, $iw, $ih);
switch ($handle->file_src_name_ext) {
case 'gif':
imagepng($im, $savepath.'grd'.$row->id.'.gif');
break;
case 'jpg':
imagejpeg($im, $savepath.'grd'.$row->id.'.jpg');
break;
case 'png':
default:
imagepng($im, $savepath.'grd'.$row->id.'.png');
break;
}
幸運を!
私のバルダポモシュニックを見てください