0

最近、Adaptive Imagesを試してみました。

透過PNG変換時以外は問題なく動いているようです。透明な背景に湾曲した白い形の画像があります。画像がアダプティブ画像(変換にGDライブラリを使用すると思われる)によって変換されると、白い形状の端が黒い境界線になります。

以下は、私の言いたいことを理解できるように、黒い境界線のある湾曲したエッジのスクリーンショットです。

元のサイズ 1920x63: http://i.imgur.com/Cc0hJ.png

ここに画像の説明を入力

私は GD Library やそれが画像を変換する方法についてはあまり知りませんが、それが私の側にあるのかどうかを確認するためにいくつかの検索を行いました. そうじゃないと思うけど。

同じ問題に関して、この同様の投稿も見つけました。ただし、Adaptive Images PHP を編集して @WouterH の提案された回答を使用しようとしましたが、うまくいきませんでした。彼は、透明な色を作成し、コピーの前に $image をその色で塗りつぶすことを提案しました。コードは以下のとおりです。

$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
imagealphablending($image, true); 

Adaptive-images.php ファイルで、次のコード行を見つけました。

imagealphablending($dst, false);
imagesavealpha($dst,true);
$transparent = imagecolorallocatealpha($dst, 255, 255, 255, 127);
imagefilledrectangle($dst, 0, 0, $new_width, $new_height, $transparent);

ここで変更を加えました。正しい順序がわからないため、さまざまなバリエーションを試しましたが、ほとんどの場合、これらの行に沿って何かに適応させようとしました。

imagesavealpha($dst,true);
$transparent = imagecolorallocatealpha($dst, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
imagealphablending($dst, true); 
imagefilledrectangle($dst, 0, 0, $new_width, $new_height, $transparent);

これは違いがないように見えました。私が試したさまざまな方法に応じて、以前は透明だった場所が黒く塗りつぶされるか、同じ問題が残ります(黒い輪郭)。

誰かがこれを理解するのを手伝ってくれることを願っています...よろしくお願いします!

4

1 に答える 1

0

IMHO これは、ここで説明されているのと同じ問題です。 PHP GDが透明な画像のサイズを変更して黒い境界線を与える

于 2012-12-21T11:32:11.740 に答える