65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Silverlight 客户端中显示、保存和注释 100 多种图像格式

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2010年8月9日

CPOL

5分钟阅读

viewsIcon

34621

通过最少的努力,您就可以使用 LEADTOOLS V17 加载和保存 100 多种文件格式,使用高级图像处理技术处理图像,并在 Silverlight 客户端应用程序中直接实现注释,从而无需调用外部服务器。

引言

LEAD Technologies 自 1990 年以来一直是数字成像工具的杰出供应商。其屡获殊荣的 LEADTOOLS 工具包系列帮助开发人员快速轻松地将光栅、文档、医疗、多媒体、矢量和 Internet 成像集成到他们的应用程序中。使用 LEADTOOLS 来满足您的成像需求,可以让您将更多时间花在用户界面和应用程序特定的代码上,从而加快您的开发周期并提高投资回报率。

LEADTOOLS Silverlight Imaging SDK 包含在 LEADTOOLS Document 和 Medical Imaging 产品组的所有产品中。LEADTOOLS 为 Silverlight 开发人员提供了加载、显示、处理和保存 Silverlight 框架本身不具备的多种图像格式(如 JPEG 2000、TIFF、JBIG2 和 DICOM)的能力。由于是 100% 纯托管 Silverlight 二进制文件,图像可以在 Silverlight 应用程序中直接处理和注释,无需外部依赖或服务器调用。

LEADTOOLS 附带多个查看组件,包括图像查看器、图像列表和缩略图窗口。查看器配有许多自动化的交互式工具,使开发人员可以轻松实现滚动、平移、缩放、放大镜等功能,以生成优雅的用户体验。通过缩略图窗口和图像列表控件,可以轻松浏览高分辨率和多页图像。

使用 LEADTOOLS 还可以实现基于 Silverlight 的文档成像应用程序。支持流行的双色压缩格式,如 CCITT、FAX 和 JBIG2。为了最大化 OCR 和条形码识别的可读性、压缩率和准确性,开发人员可以通过倾斜校正和去除线条、打孔、边框等来清理图像。使用 LEADTOOLS 完全自动化的注释,在 Silverlight 应用程序中添加注释和标记非常简单。加载、保存和编辑流行的注释类型,包括线条、标尺、多边形、曲线、注释、高亮、 redaction 等。

在本文中,我们将向您介绍新的 Silverlight 类的关键功能,并提供一个实现它们的循序渐进的教程。通过下载教程下方链接提供的功能齐全的评估 SDK,您可以亲自尝试。

主要特点

  • 100% 纯托管 Silverlight 二进制文件
  • 加载和保存 100 多种图像格式,包括 PDF、JPEG2000、FAX、CCITT、JBIG2 和 TIFF
  • 在功能丰富的高级查看器控件中显示图像,该控件配备了交互式功能,如滚动、平移、缩放、放大镜和变焦
  • 利用图像列表和缩略图窗口控件轻松浏览多页和高分辨率图像
  • 执行 200 多种高级图像处理功能,包括文档清理
  • 使用 Pixel Shaders 即时应用图像转换,如反色、快门、锐化、边缘检测、亮度和对比度
  • 实现注释和标记,以加载、保存和编辑流行的注释类型,包括标尺、多边形、曲线、高亮和 redaction
  • 加载、查看、处理和保存 DICOM 数据集
  • 显示和处理 12/16 位扩展灰度图像,具有窗位、多尺度增强、组织均衡等功能
  • 使用 WCF 扩展功能,以包含 OCR 和条形码等高级功能

环境

LEADTOOLS Silverlight 类库包含 Silverlight 3 和 4 的二进制文件,用于在 Visual Studio 2008 和 2010 中开发富客户端 Web 和桌面应用程序。

代码

除了我们强大的查看组件外,LEADTOOLS 还附带了包括菜单系统在内的多个实用程序类。要使用它们,您需要添加 Leadtools.Windows.Controls 和 Leadtools.Silverlight.Demos 的命名空间。以下是实现简单菜单和查看器的 XAML 代码。

<UserControl x:Class="LeadtoolsSilverlightExample.MainPage"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:menu="clr-namespace:Leadtools.Silverlight.Demos;assembly=Leadtools.Silverlight.Demos"
   xmlns:Leadtools_Windows_Controls="clr-namespace:Leadtools.Windows.Controls;assembly=Leadtools.Windows.Controls" >
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"></RowDefinition>
      <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <menu:Menu x:Name="MainMenu" Background="#EEEEEE" Grid.Row="0">
      <menu:MenuItem Header="File">
        <menu:MenuItem Header="Open..." x:Name="FileOpen" Click="FileOpen_Click"/>
        <menu:MenuItem Header="Save..." x:Name="FileSave" Click="FileSave_Click"/>
      </menu:MenuItem>
    </menu:Menu>
    <Grid  x:Name="LayoutRoot" Grid.Row="1">
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="10*"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
      </Grid.ColumnDefinitions>
      <Leadtools_Windows_Controls:RasterImageViewer x:Name="viewerControl" Grid.Column="0" />
    </Grid>
  </Grid>
</UserControl>

LEADTOOLS 包含 100% 纯 Silverlight 二进制文件,可用于加载和保存 100 多种图像格式。图像的读取和写入支持通过 RasterCodecs 类处理。该库还可以读取和写入 TIFF 和 EXIF 等文件的元数据标签。为了节省开发人员空间并最大限度地减小部署占用的空间,每种格式都有其自己的编解码器(例如,Leadtools.Codecs.Bmp.dll、Leadtools.Codecs.J2k.dll、Leadtools.Codecs.Tif.dll 等)。下面是一个示例,说明如何使用 LEADTOOLS RasterImageViewer 控件加载和显示图像,以及如何将其保存为 JPEG 2000 流。

private void FileOpen_Click(object sender, RoutedEventArgs e)
{
   OpenFileDialog ofd = new OpenFileDialog();
   if (ofd.ShowDialog() == true)
   {
      using (Stream stream = ofd.File.OpenRead())
      {
         RasterCodecs codecs = new RasterCodecs();
         viewerControl.Image = codecs.Load(stream);
      }
   }
}
 
private void FileSave_Click(object sender, RoutedEventArgs e)
{
   RasterImageFormat format = RasterImageFormat.J2k;
   int bitsPerPixel = 24;
 
   SaveFileDialog sfd = new SaveFileDialog();
   sfd.Filter = "JPEG2000 Stream (*.j2k)|*.j2k";
   if (sfd.ShowDialog() == true)
   {
      using (Stream stream = sfd.OpenFile())
      {
         RasterCodecs codecs = new RasterCodecs();
         codecs.Save(viewerControl.Image, stream, format, bitsPerPixel);
      }
   }
}

LEADTOOLS SDK 提供数百种图像处理功能,可用于处理手头的任何图像。我们拥有您期望的所有基本功能(例如,旋转、翻转等),但也开发了许多用于数学计算、几何变换、颜色操作、感兴趣区域和艺术效果的高级算法。我们还有许多用于专业领域的函数,例如文档图像清理(倾斜校正文档和支票,去除点、线、打孔等)和医疗(窗位、多尺度增强、组织均衡)。我们没有将数百个函数打包到一个对象中,而是将每个图像处理操作分离到单独的命令类中,以便开发人员能够更全面地控制组织和部署占用的空间。下面是一个调整图像颜色属性的简单示例。

ChangeIntensityCommand cmdIntensity = new ChangeIntensityCommand(250);
cmdIntensity.Run(viewerControl.Image);
ChangeContrastCommand cmdContrast = new ChangeContrastCommand(-750);
cmdContrast.Run(viewerControl.Image);
ChangeHueCommand cmdHue = new ChangeHueCommand(500);
cmdHue.Run(viewerControl.Image);

LEADTOOLS-Silverlight/image001.jpg

最后,LEADTOOLS 可以轻松地为您的 Silverlight 客户端应用程序添加高级、可定制且完全自动化的注释和标记支持。在应用程序初始化代码中,只需实例化并设置几个对象,添加一个工具栏,您就可以开始使用 LEAD 的自动化注释了。

AnnAutomationManager manager = new AnnAutomationManager();
manager.CreateDefaultObjects();
manager.CreateToolBar();
 
LayoutRoot.Children.Add(manager.ToolBar);
 
manager.ToolBar.Orientation = Orientation.Vertical;
manager.ToolBar.HorizontalAlignment = HorizontalAlignment.Center;
manager.ToolBar.UpdateLayout();
Grid.SetColumn(manager.ToolBar, 1);

_automation = new AnnAutomation(manager, viewerControl);

LEADTOOLS-Silverlight/image002.jpg

结论

LEADTOOLS 为开发人员提供了世界上性能最佳、最稳定的成像库,并提供易于使用的、高级别的编程接口,从而能够快速开发业务关键型应用程序。新版本 17 将允许 Silverlight 开发人员扩展图像格式支持,并在富客户端 Web 应用程序中处理和注释图像。

Silverlight 只是 LEADTOOLS 提供的众多技术之一。有关我们其他产品的更多信息,请务必访问我们的主页并下载免费的功能齐全的评估 SDK,并在评估期间利用我们的免费技术支持。

下载完整示例

您可以下载一个功能齐全的演示,其中包括上述功能以及一些图像处理和交互式查看功能。要运行此示例,您需要以下内容:

LEADTOOLS 还包含 Silverlight 3 的二进制文件和示例。要使用它们,您需要 Visual Studio 2008 和 Microsoft Silverlight 3 Tools for Visual Studio 2008

如果您想在购买前试用 LEADTOOLS 文档成像,您可以 下载 LEADTOOLS 免费 60 天评估版

支持

需要帮助才能使此示例正常运行?联系我们的支持团队,获得免费技术支持!有关定价或许可问题,您可以联系我们的销售团队(sales@leadtools.com)或致电 704-332-5532。

© . All rights reserved.