問題 phpのGD関数でpng画像を加工したら、透明部分が真っ黒になってしまいました。 答え jpegだと透明部分がないので気づかないが、PNG形式で透過部分、半透明部分があると思わぬ結果になることがある。 背景が塗りつぶされたり、背景(透明部分)との境界部分が汚くなったりする。 imagealphablending() と imagesavealpha() で、ブレンドモードとアルファチャネルの扱いを設定するとよい。 コード サンプル //元の画像 $original = imagecreatefrompng('./sample.png'); $x = imagesx($original); $y = imagesy($original); //縮小先 $resize = imagecreatetruecolor($x/2, $y/2); //ブレンドモードを無効にする imagealp
