热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

图像处理控件Aspose.Imaging最新版功能亮点示例详解

Aspose.Imagingfor.NET一种高级图像处理控件,允许开发人员创建,编辑,绘制或转换图像。图像导出和转换是API核心功能之一,它允许在不安装Photoshop应用

  Aspose.Imaging for .NET一种高级图像处理控件,允许开发人员创建,编辑,绘制或转换图像。图像导出和转换是API核心功能之一,它允许在不安装Photoshop应用程序或任何其他图像编辑器的情况下保存为AdobePhotoshop?本机格式。

  近期发布了Aspose.Imaging for .NET v19.7,支持PartialRotater类中的优化策略,支持OTG(OpenDocument图形模板),下面我们一起来探索新版中的新增功能及其工作原理。

  ▲IMAGINGNET-2926 - 将PSD保存到PDF中不提供可选择的文本

  //将文本转换为向量对象

  using (Image image=Image.Load("text.psd"))

  {

  image.Save(fileName + "text_vector.pdf", new PdfOptions());

  }//

  //老式的转换与充分光栅化

  using (Image image=Image.Load("text.psd", new PsdLoadOptions() { ReadOnlyMode=true }))

  {

  image.Save(fileName + "text_vector.pdf", new PdfOptions());

  }

  ▲IMAGINGNET-3381 - 在PartialRotater类中支持优化策略

  //为目标加载的图像设置50兆字节的内存限制

  using (var image=Image.Load(imageFilePath, new LoadOptions() { BufferSizeHint=50 })) {

  //执行RotateFlip操作

  image.RotateFlip(RotateFlipType.Rotate90FlipNone);

  //执行旋转操作

  ((RasterImage)image).Rotate(60); // rotate 60 degrees clockwise

  }

  ▲IMAGINGNET-2044 - 支持OTG (OpenDocument图形模板)

  string baseFolder="D:";

  string fileName="VariousObjectsMultiPage.otg";

  ImageOptionsBase[] optiOns={ new PngOptions(), new PdfOptions() };

  foreach (ImageOptionsBase item in options)

  {

  string inputFileName=Pathbine(baseFolder, fileName);

  string fileExt=item is PngOptions ? ".png" : ".pdf";

  string outputFileName=Pathbine(baseFolder, fileName + fileExt);

  using (Image image=Image.Load(inputFileName))

  {

  OtgRasterizationOptions otgRasterizatiOnOptions=new OtgRasterizationOptions();

  otgRasterizationOptions.PageSize=image.Size;

  item.VectorRasterizatiOnOptions=otgRasterizationOptions;

  image.Save(outputFileName, item);

  }

  }

  ▲IMAGINGNET-3442 - Bpmn SVG转换导致陌生的PNG

  using(Image image=Image.Load(“input.svg”))

  {

  image.Save(

  “output.png”,

  new PngOptions()

  {

  VectorRasterizatiOnOptions=new SvgRasterizationOptions

  {

  PageSize=image.Size,

  }

  });

  }

  ▲IMAGINGNET-3430 - 支持PDFOptions中的DPI设置

  string baseFolder=“D:

  ”;

  string fileName=“standardSize.tif”;

  string inputFileName=Pathbine(baseFolder,fileName);

  string outFileName=inputFileName +“。pdf”;

  using(Image image=Image.Load(inputFileName))

  {

  PdfOptions pdfOptiOns=new PdfOptions {PageSize=new SizeF(612,792 )};

  image.Save(outFileName,pdfOptions);

  }

  ▲IMAGINGNET-3286 - 没有从WMF到SVG的真正转换

  string baseFolder=Pathbine("D:","3286");

  string fileName="image2.wmf";

  string inputFileName=Pathbine(baseFolder, fileName);

  using (Image image=Image.Load(inputFileName))

  {

  string script=((WmfImage)image).GetPostScript();

  string ethlOnScript=File.ReadAllText(inputFileName + ".ps");

  if (script !=ethlonScript)

  {

  throw new Exception("script not eqal ethalon script");

  }

  }

  Since PostScript is not supported in Aspose products, further processing is done by **third-party applications**.

  For example:

  Use ghostscript (ghostscript/)

  string baseFolder=Pathbine("D:","3286");

  string fileName="image2.wmf";

  string inputFileName=Pathbine(baseFolder, fileName);

  string scriptFileName=inputFileName + ".ps";

  string outputPdfFileName=scriptFileName + ".pdf";

  string ghostPath="C:

  Program Files (x86)

  gs

  gs8.61

  bin

  gswin32c.exe";

  string script;

  using (Image image=Image.Load(inputFileName))

  {

  script=((WmfImage)image).GetPostScript();

  }

  File.WriteAllText(scriptFileName, script);

  string cmdArguments=string.Format(" -sDEVICE=pdfwrite -o {0} {1}", outputPdfFileName, scriptFileName);

  Process proc=System.Diagnosticscess.Start(ghostPath, cmdArguments);

  proc.WaitForExit(60000);

  ▲IMAGINGNET-3230 - 将Jpeg转换为Tiff会导致绿色覆盖不正确

  using(Image image=Image.Load(“input.jpg”))

  {

  image.Save(“output.tiff”,new TiffOptions(TiffExpectedFormat.TiffJpegRgb));

  }

  ▲IMAGINGNET-3445 - 来自font文件夹的文件被锁定

  string baseFolder=Pathbine("D:", "test");

  string fOntsFolder=Pathbine(baseFolder, "fonts");

  //创建字体文件夹

  if (!Directory.Exists(fontsFolder))

  {

  Directory.CreateDirectory(fontsFolder);

  }//

  //复制字体到字体文件夹

  string fOntFile=Pathbine(fontsFolder, "foo.ttf");

  if (!File.Exists(fontFile))

  {

  File.Copy(Pathbine(baseFolder, "foo.ttf"), fontFile);

  }//

  //设置字体路径

  List fOnts=new List(FontSettings.GetDefaultFontsFolders());

  fonts.Add(fontsFolder);

  FontSettings.SetFontsFolders(fonts.ToArray(), true);//

  //打开图片

  string inputFile=Pathbine(baseFolder, "grinched-regular-font.psd");

  string outputFile=inputFile + ".png";

  using (Image image=Image.Load(inputFile))

  {

  PngOptions saveOptiOns=new PngOptions();

  image.Save(outputFile, saveOptions);

  }

  //删除字体文件夹

  Directory.Delete(fontsFolder,true);

  ▲IMAGINGNET-3444 - 用于调整SVG图像大小的Aspose.Imaging问题

  string baseFolder="D:

  ";

  string inputFileName=Pathbine(baseFolder, "logotype.svg");

  float scale=10f;

  using (Image image=Image.Load(inputFileName))

  {

  image.Save(inputFileName+".png", new PngOptions()

  {

  VectorRasterizatiOnOptions=new SvgRasterizationOptions()

  {PageSize=image.Size, ScaleX=scale, ScaleY=scale}

  });

  }




推荐阅读
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文讨论了在使用Timer控件和键盘触发时可能出现的冲突问题,并提供了解决方法。同时还介绍了如何实现一个类似QQ的小图标只出现在右下角而不在状态栏的程序。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
朵朵妞er
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有