2

Web カメラを持っていて、画像に注釈を追加したいのですが、アンチエイリアシングがうまくいきません。私は説明しようとします:

次のようなイメージがあります。ソース画像

次に、半透明の四角形を追加し、その上にテキストを配置します。

        //  add background black rectangle
        $draw->setFillColor('black'); 
        $draw->setFillOpacity(0.5);
        $draw->rectangle( 0, 10, $cam['width'], 70 );    // Draw the rectangle 
        //  add lead text
        $draw->setFont('ARIALBD.TTF');
        $draw->setFontSize(14);
        $draw->setFillColor('white');
        $draw->annotation(20, 35, $cam['text']);
        //  add timestamp
        $draw->setFont('ARIAL.TTF');
        $draw->setFontSize(12);
        $draw->setFillColor(new ImagickPixel('#f3ac01'));
        $draw->annotation(20, 50, date("Y-m-d H:i:s"));
        $img->drawImage($draw); 

そして、次のようなものを取得します。

テキストの追加

ええ、でもタイムスタンプはぎこちなく見えます(分/秒を見てください)。アンチエイリアシングを無効にしようとしています:

$draw->setTextAntialias(false);

そして今はまだ醜く見えますが(何時間も見てください)、今では鋭いエッジがあります:

アンチエイリアシングをオフにしました

このように、スマートなアンチエイリアシングで結果を得るにはどうすればよいですか (PS が独自のアンチエイリアシングを使用していることは知っていますが、IMagickDraw は本当に悪い結果を処理します):

これが欲しい

4

2 に答える 2

1

最初に別のフォントを試してください。これはopen sans (別のリンク) フォント の例です。ここに画像の説明を入力

于 2012-11-20T10:04:02.367 に答える
1

私にとっては、アンチエイリアシングよりも保存時の画像全体の圧縮レベルのように見えます。

于 2012-11-20T09:11:20.690 に答える