2014-11-22 253 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;