LeadTools中文入门教程(1):加载、显示和保存图像

LeadTools图像处理开发工具,在医学、DICOM、PACS、栅格、矢量和多媒体图像处理领域都处于世界领先的地位。LeadTools包括Raster Imaging、Document Imaging、Medical Imaging和Multimedia Imaging四个产品系列。在图像处理应用程序中,加载、显示和保存图像是非常基本且重要的一部分,LeadTools对这方面提供了很好的支持。本文概览:1 使用LeadTools加载和保存图像简介 2 使用LeadTools将彩色图像保存为二值图像简介 3 使用LeadTools显示图像简介4 创建LeadTools简单应用程序——“加载和显示图像”的具体步骤及截图

发布于 2014/08/29 00:00

行业动态


  • LeadTools中文入门教程(1):加载、显示和保存图像 点击进入

  • LeadTools中文入门教程(2):缩放图像 点击进入

  • LeadTools中文入门教程(3):打印图像 点击进入

  • LeadTools中文入门教程(4):使用OCR识别英文 点击进入

  • LeadTools中文入门教程(5):读取和编写条形码 点击进入

  • LeadTools中文入门教程(6):从TWAIN源获取图像 点击进入

  • LeadTools中文入门教程(7):使用OCR识别图像中的中文 点击进入

  • LeadTools中文入门教程(8):使用OCR识别扫描文件中的中文 点击进入

LeadTools图像处理开发工具,在医学DICOMPACS、栅格、矢量多媒体图像处理领域都处于世界领先的地位。LeadTools包括Raster ImagingDocument ImagingMedical ImagingMultimedia Imaging四个产品系列。在图像处理应用程序中,加载、显示和保存图像是非常基本且重要的一部分,LeadTools对这方面提供了很好的支持。

本文概览:

1 使用LeadTools加载和保存图像简介

2 使用LeadTools将彩色图像保存为二值图像简介

3 使用LeadTools显示图像简介

4 创建LeadTools简单应用程序——“加载和显示图像”的具体步骤及截图


PART1 加载和保存图像

LeadTools在加载和保存图像时提供了很多选项。下面的简单代码即可实现加载LEAD压缩文件并将其保存为Windows BMP文件的功能。

  1: C#
  2: 
  3: //创建一个RasterCodecs类的新实例
  4: Leadtools.Codecs.RasterCodecs codecs = new Leadtools.Codecs.RasterCodecs();
  5: //以自身的每像素位数加载一个图像
  6: Leadtools.RasterImage image = codecs.Load(
  7:    @"c:\Test.cmp",
  8:    0,
  9:    Leadtools.Codecs.CodecsLoadByteOrder.Bgr,
 10:    1,
 11:    1);
 12: // 将图像保存为24-位Windows BMP文件
 13: codecs.Save(
 14:    image,
 15:    @"C:\Test.bmp",
 16:    Leadtools.RasterImageFormat.Bmp,
 17:    24,
 18:    1,
 19:    1,
 20:    1,
 21:    Leadtools.Codecs.CodecsSavePageMode.Overwrite);
 22: //释放我们创建的对象
 23: image.Dispose();
 24: codecs.Dispose();


PART2 将彩色图像保存为二值图像

LeadTools可自动将彩色图像(高于1位/像素的图像)保存为二值图像(等于1位/像素的图像)。将RasterCodecs.Save方法的bitsPerPixel参数设为“1”即可完成此功能。当将图像的颜色分辨率降低到8位/像素或更低时,递色方法会发挥作用。另一个选择是您可以使用nearest-color匹配(不采用递色方法),这意味着每个像素的颜色会变为调色板上和它最匹配的颜色。如果原始图像包含微妙的色彩细节,nearest-color匹配可能会产生令人不愉快的颜色大斑点。

递色方法通过混合不同颜色的像素,创建了更多细微的图案阴影。这类似于报纸图片产生灰色阴影的方式,尽管实际的颜色只有黑色和白色。

若您使用v17,在将彩色图像保存为二值图像时,LeadTools默认不使用递色方法。这保证了最终的二值图像可以最清晰地表示原始文本,且为文档识别方法如OCR和条码提供了最好的输入。

若您想要启用递色方法,必须将Leadtools.RasterImage中的递色方法设为所需的值,并在保存图像时让Leadtools.Codecs.RasterCodecs使用这个值。

下面的代码片段为:加载一个24位/像素的图像并以递色和非递色方案将其保存为二值图像。

  1: C# 
  2: private static void Test(RasterCodecs codecs, string coloredImageFileName)
  3: {
  4:    // RasterCodecs.Options.Save.UseImageDithering方法默认为false
  5:    RasterImage image = codecs.Load(coloredImageFileName);
  6:    //以无递色选项保存图像
  7:    codecs.Save(image, @"C:\NotDithered.tif", RasterImageFormat.CcittGroup4, 1);
  8:    // 将图像递色方法修改为FloydStein
  9:    image.DitheringMethod = RasterDitheringMethod.FloydStein;
 10:    //在保存图像时使用图像递色方法
 11:    codecs.Options.Save.UseImageDitheringMethod = true;
 12:    // 再次保存图像
 13:    codecs.Save(image, @"C:\Dithered.tif", RasterImageFormat.CcittGroup4, 1);
 14:  
 15:    image.Dispose();
 16: }


PART3 显示图像


LeadTools绘制图像的方法使用了四个矩形。分别为:**源矩形、目标矩形、源裁剪矩形和目标裁剪矩形。**前两者决定了显示图像时缩放的程度,后两者决定了图像的哪部分将被绘制。您可参考RasterImagePainter.Paint 方法更进一步了解这些矩形的使用。其他的绘制方法也使用了这些矩形,可以实现更多的功能,如过渡效果和区域处理。

默认情况下,LeadTools在加载图像时水平分辨率与垂直分辨率是相同的。但是,大多数传真图像的水平分辨率通常是垂直分辨率的二倍(如200×100),在加载时若不考虑分辨率就会被拉长。您可以在使用RasterImagePrinter显示图像时将Leadtools.WinForms.RasterImageViewer.UseDpi属性值设为true,这样在加载时便会将分辨率考虑在内,这个问题就轻松解决了。在打印时,若要考虑图像分辨率,需将Leadtools.WinForms.RasterImagePrinter.UseDpi属性设为true。在RasterImageList中,使用Leadtools.WinForms.RasterImageList.UseDpi属性可设置图像分辨率。

当以256色或更少的显示模式绘制图像时,您必须设置要使用的调色板。

当放大图像时,您可以放大显示矩形或缩小源矩形(这样可得到图像的一部分)。如果您通过缩小源矩形放大图像,则必须考虑图像的查看视角。

LeadTools在显示图像时提供了附加的选项,包括透明度、递色选项、偏黑选项、半色调、对比度、gamma、强度、窗位、绘制和过渡效果。

PART 4 创建“加载和显示图像”应用程序的具体步骤

了解了加载、显示和保存图像的一些简单介绍后,您一定非常期待使用LEADTOOLS在VS中完成一个简单的应用程序,让我们现在开始吧!

以下为加载和显示图像的具体步骤和操作截图:(注:此文截图为C#项目截图)

1. 打开Visual Studio .NET。

2. 点击 文件->新建->项目…。

3. 打开新建项目对话框后,在模板中选择“Visual C#”或“Visual Basic”,随后选择“Windows窗体应用程序”。在名称栏中输入项目名称“Loading and Displaying an Image”,并使用“浏览”按钮选择您工程的存储路径,点击“确定”。

4. 在“解决方案资源管理器”中,右击“引用”,选择“添加引用”。**根据当前工程的 Framework 版本和生成目标平台,选择添加相应的LeadTools控件,例如工程中的版本为 Framework 2.0、生成目标平台是 x86,则浏览选择Leadtools For .NET文件夹” <LEADTOOLS_INSTALLDIR>\Bin\DotNet\Win32”,**选择以下的DLL“:

  • Leadtools.dll

  • Leadtools.Codecs.dll

  • Leadtools.WinForms.dll

  • Leadtools.Codecs.Cmp.dll

点击“确定”按钮,将以上所有的DLL添加到应用程序中。

5. 将Form1调整到设计视图,在工具箱(视图->工具箱)拖拽一个RasterImageViewer实例至窗体**。若您的工具箱没有RasterImageViewer,点击工具->选择工具箱项…。点击浏览从“<LEADTOOLS_INSTALLDIR>\Bin\DotNet\Win32”中选择Leadtools.WinForms.DLL,点击打开并确定。6. 从工具箱(视图->工具箱),添加一个按钮控件,将Text属性改为“加载图片”。47. 切换至Form1的代码视图(右击Form1**,选择查看代码),将下面几行代码添加到文件开始处:

  1: [C#] 
  2: 
  3:    using Leadtools;
  4:    using Leadtools.Codecs;
  5:    using Leadtools.WinForms;

8. 添加Form1 Load事件的事件句柄,添加以下代码:

  1: [C#]
  2:  
  3:        // 加载、保存图像的 RasterCodecs 对象
  4:        private RasterCodecs codecs;
  5:        private void Form1_Load(object sender, System.EventArgs e)
  6:        {
  7:            // 初始化一个新的RasterCodecs 对象
  8:            codecs = new RasterCodecs();
  9:        }

9. 在窗体中双击“加载图像”按钮,为此按钮添加一个事件句柄,添加以下代码:

  1: [C#]
  2:  
  3: private void button1_Click(object sender, System.EventArgs e)
  4: {
  5:       //显示打开文件对话框
  6:       OpenFileDialog dlg = new OpenFileDialog();
  7:       dlg.Filter = "All Files|*.*";
  8:       if(dlg.ShowDialog(this) == DialogResult.OK)
  9:       {
 10:             try
 11:             {
 12:                   // 尝试加载该文件
 13:                   RasterImage tempImage = codecs.Load(dlg.FileName);
 14:                      
 15:                   // 将图像设置到查看器中
 16:                   rasterImageViewer1.Image = tempImage;
 17:                   Controls.Add(rasterImageViewer1);
 18:                   rasterImageViewer1.BringToFront();
 19:             }
 20:             catch(Exception ex)
 21:             {
 22:                   MessageBox.Show(this, ex.Message);
 23:             }
 24:       }
 25: }

10. 编译并运行。结果如下图所示。

6

7

DEMO下载:


Loading and Displaying an Image.rar


本文只提供了加载、显示和保存图像的示例程序,如果你想对图像进行更多操作,欢迎下载LeadTools试用版,并在本文代码上进行修改。

 

LeadTools试用版下载


了解LeadTools产品更多特性


若您在使用LeadTools的过程中遇到任何问题,欢迎在葡萄城开发者社区LeadTools板块提问,我们的专业技术团队期待您的到来!


点击查看更多LeadTools使用教程、博文

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态