1

LEADTOOLS18で画像をスキャンしました。RasterImageViewerで表示します。

画像にテキストを追加したい。

私はこのコードを使用します。

rasterImageViewer.BeginUpdate();
var container = new RasterImageGdiPlusGraphicsContainer(rasterImageViewer.Image);
container.Graphics.SmoothingMode = SmoothingMode.HighQuality;
Font font = new Font(new FontFamily("Tahoma"), 12);
var point = new PointF(200, 200);
container.Graphics.DrawString("LEADTOOLS", font, new SolidBrush(Color.Red), point);
rasterImageViewer.EndUpdate();
rasterImageViewer.UpdateLayout();

テキストを追加しないでください!!!

4

1 に答える 1

1

あなたのコードは正しいですが、何かが欠けています。Leadtools.RasterImage であるビューアの Image メンバーを変更すると、これは実際に表示される画像ではありません。最初に WPF ImageSource に変換してから、ビューアの Source プロパティに格納する必要があります。

LEADTOOLS 画像処理クラスの 1 つを使用すると、このコードのような変換が自動的に行われます。

Leadtools.ImageProcessing.Effects.AverageCommand average = new AverageCommand(3);
average.Run(rasterImageViewer.Image);

ただし、Graphics コマンドを使用して画像を描画する場合は、Source が更新されるように Image が変更されたことをコントロールに通知する必要があります。1 つの方法は、コードの直後に次のように RasterImage.Changed イベントを発生させることです。

rasterImageViewer.Image.OnChanged(new
    Leadtools.RasterImageChangedEventArgs(Leadtools.RasterImageChangedFlags.Data));

別の方法は、次のように自分で変換を実行することです。

var src = Leadtools.Windows.Media.RasterImageConverter.ConvertToSource(rasterImageViewer.Image,
    Leadtools.Windows.Media.ConvertToSourceOptions.None);
rasterImageViewer.Source = null;
rasterImageViewer.Source = src;
于 2014-11-24T22:05:45.207 に答える