2014-11-22 298 views
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(); 

但是不要添加文字!

回答

1

你的代碼是正確的,但它缺少一些東西。當您修改查看器的圖像成員(這是一個Leadtools.RasterImage)時,這不是實際顯示的圖像。它必須先轉換爲WPF ImageSource,然後存儲在查看器的Source屬性中。

當您使用LEADTOOLS圖像處理類中的一個,它會自動完成轉換,如下面的代碼:當您使用圖形命令繪製的圖像

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

但是,你需要通知控制圖像已更改,以便更新源。一種方法是你的代碼後直接提起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;