0

imagefilter()関数を使用して画像をより鮮明にする可能性はありますか? 私が使用しimagettftext()ているのは、フォントにアンチエイリアスを追加するもので、フォントが少し焦点が合っていないように見えます。最終的な画像を少し鮮明にして、画像のチャーの周りのぼやけを減らすことができます。

異なるテスト画像

  • 使用フォント
    • Roboto-Thin.ttf
    • Roboto-Black.ttf

明るいフォントの画像

横にある線のようにフォントを表示するのが好きです。

ここに画像の説明を入力

暗いフォントの画像

ここに画像の説明を入力

-$font_color を使用した画像 (一部の Web リソースでは、基本的にアンチエイリアシングをオフにするフォントの色の値を負にすることが提案されています) しかし、この場合、フォントが見苦しく見えます。(Left-To-Right 100 はアンチエイリアシングをオフにした場合)

ここに画像の説明を入力

4

3 に答える 3

3

imagefilter() にはそのようなフィルターはありません(試してみましたIMG_FILTER_EDGEDETECTか? 鋭いトランジションの場合は、何かを得ることができるかもしれません)。しかし、代わりに試して使用することができますimageconvolution

imageconvolution($imageResource, array(
    array( -1, -1, -1 ),
    array( -1, 16, -1 ),
    array( -1, -1, -1 ),
), 8, 0);

PHP imageconvolution() が左上隅に黒い点を残しているのを見ると、問題があるように見えます。imageconvolution

もう 1 つの可能性は、テキストを適用する前に画像のサイズを変更して、(たとえば) 200% 大きくすることです。次に、再度 200% 大きいフォントを使用してテキストを適用します。次に、画像をダウンサンプリングします。フォントの特性によっては、にじみを軽減する効果があります。2 の整数乗 (200%、400%、...) を使用すると、アーティファクトを減らすのに役立ちます。

于 2012-10-25T23:53:32.973 に答える
2

GDソリューション

$old = "old.png";
$new = "new.png";

$im = imagecreatefrompng($imgname);
imagetruecolortopalette($im, FALSE, 256);
imagecolorset($im, imagecolorclosest($im, 159, 159, 159), 0, 0, 0);
imagecolorset($im, imagecolorclosest($im, 191, 191, 191), 0, 0, 0);

imagepng($im, $new);
imagedestroy($im);

イメージマジックソリューション

convert old.png -fuzz 0% -fill rgb(0,0,0) -opaque rgb(159,159,159) new.png
convert new.png -fuzz 0% -fill rgb(0,0,0) -opaque rgb(191,191,191) new.png


彼らは出力します

ここに画像の説明を入力 ここに画像の説明を入力

                  Old                           new
于 2012-10-25T23:39:21.887 に答える
0

Roboto フォントの両極端を使用しています。ライトバージョンかレギュラーバージョンを選ぶと、暗すぎずに暗くなります。

フォント レンダラーのアンチエイリアス機能では、細い線の太さを 1 ピクセル未満にすることはできないため、代わりに薄くします。

于 2012-10-30T21:36:41.393 に答える