1

私はこの画像を持っています: 白い背景の元の画像

私はphp5とgd2ライブラリを使用して透明な背景を実現していますが、結果は私が期待したものではありません(違いを確認するには暗い背景が必要です):透明な背景

そしてここに私のコードがあります:

$size = getimagesize($img_url);
$img = imagecreatefrompng($img_url);
$im_tc = imagecreatetruecolor($size[0],$size[1]);
imagecopyresampled($im_tc,$img,0,0,0,0,$size[0],$size[1],$size[0],$size[1]);
imagedestroy($img);
$white  = imagecolorallocatealpha($im_tc, 255, 255, 255,127);
imagecolortransparent($im_tc, $white);
imagepng($im_tc,'image.png');

どんな助けでもいただければ幸いです!:)

4

1 に答える 1

1

元の画像には透明な背景がありませんが、すべての真っ白なピクセルを透明に変更して背景を作成しようとしています。テキストの周囲に影/輝きがあるため、これらのピクセルは完全に白ではなく、透明になりません。ここにはいくつかのオプションがあります。

  • 画像エディタ(GIMP、Photoshopなど)とそれらのきめ細かい選択ツールを使用して、「背景」のスマートな選択を実行し、それを削除します。Photoshopには、少なくとも、魔法の杖ツールで利用できる非常に便利なオプションがあり、しきい値やフェザリングなどを選択できます。
  • 「透明」にするために、より多くの色を選択します。白だけでなく、「。gr」が設定されている正確な色を除いたすべてのグレーの色合いを選択します。これにより、画像の影の部分もすべて透明になりますが、エッジは完全ではない場合があります(すなわち:羽毛がなく、わずかにギザギザになっています。)
于 2012-04-12T15:24:02.833 に答える