图像处理控件Aspose.Imaging v19.6新版亮点示例详解(2)

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

近期发布了Aspose.Imaging for .NET v19.6,JPEG输出中不再保留IMAGINGNET-3351 DPI属性,下面我们一起来探索新版中的新增功能及其工作原理。>>欢迎下载Aspose.Imaging for .NET v19.6体验

▲JPEG输出中不保留IMAGINGNET-3351 DPI属性
string dir = "c:\\aspose.work\\IMAGINGNET\\3351\\";
 
using (Aspose.Imaging.FileFormats.Tiff.TiffImage tiffImage = (Aspose.Imaging.FileFormats.Tiff.TiffImage)Image.Load(dir + "source2.tif"))
{
    int i = 0;
    foreach (Aspose.Imaging.FileFormats.Tiff.TiffFrame tiffFrame in tiffImage.Frames)
    {
        Aspose.Imaging.ImageOptions.JpegOptions saveOptions = new Aspose.Imaging.ImageOptions.JpegOptions();
        saveOptions.ResolutionSettings = new ResolutionSetting(tiffFrame.HorizontalResolution, tiffFrame.VerticalResolution);
 
        if (tiffFrame.FrameOptions != null)
        {
            // Set the resolution unit explicitly.
            switch (tiffFrame.FrameOptions.ResolutionUnit)
            {
                case Aspose.Imaging.FileFormats.Tiff.Enums.TiffResolutionUnits.None:
                    saveOptions.ResolutionUnit = ResolutionUnit.None;
                    break;
 
                case Aspose.Imaging.FileFormats.Tiff.Enums.TiffResolutionUnits.Inch:
                    saveOptions.ResolutionUnit = ResolutionUnit.Inch;
                    break;
 
                case Aspose.Imaging.FileFormats.Tiff.Enums.TiffResolutionUnits.Centimeter:
                    saveOptions.ResolutionUnit = ResolutionUnit.Cm;
                    break;
 
                default:
                    throw new System.NotSupportedException();
            }
        }
 
        string fileName = "source2.tif.frame." + (i++) + "." + saveOptions.ResolutionUnit + ".jpg";
        tiffFrame.Save(dir + fileName, saveOptions);
    }
}

 

▲IMAGINGNET-3321加载PNG图像时占用大量内存
using (Image image = Image.Load("halfGigImage.png")) {
    // todo something
}
 
▲IMAGINGNET-3287将WMF转换为SVG时会添加边距
string dir = "c:\\aspose.work\\IMAGINGNET\\3287\\";
string fileName = dir + "image2.wmf";
 
// Save WMF to SVG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(fileName))
{
    // The customer uses EmfRasterizationOptions instead of WmfRasterizationOptions.
    // EmfRasterizationOptions works correctly in .NET as well.
    Aspose.Imaging.ImageOptions.WmfRasterizationOptions rasterizationOptions = new Aspose.Imaging.ImageOptions.WmfRasterizationOptions();
    rasterizationOptions.PageSize = image.Size;
 
    Aspose.Imaging.ImageOptions.SvgOptions saveOptions = new Aspose.Imaging.ImageOptions.SvgOptions();
    saveOptions.VectorRasterizationOptions = rasterizationOptions;
 
    image.Save(fileName + ".svg", saveOptions);
}                
 
// Save WMF to PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(fileName))
{
    // The customer uses EmfRasterizationOptions instead of WmfRasterizationOptions.
    // EmfRasterizationOptions works correctly in .NET as well.
    Aspose.Imaging.ImageOptions.WmfRasterizationOptions rasterizationOptions = new Aspose.Imaging.ImageOptions.WmfRasterizationOptions();
    rasterizationOptions.PageSize = image.Size;
 
    Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();
    saveOptions.VectorRasterizationOptions = rasterizationOptions;
 
    image.Save(fileName + ".png", saveOptions);
}
 
▲IMAGINGNET-3378在将WMF转换为PNG时裁剪图像宽度和高度
public void WmfToJpg() 
{
    using (Image image = Image.Load("portrt.wmf")) {
        image.Save(
                    "portrt.jpg",
                    new JpegOptions()
                        {
                            VectorRasterizationOptions = new WmfRasterizationOptions
                                                             {
                                                                 BackgroundColor = Color.WhiteSmoke,
                                                                 PageWidth = image.Width,
                                                                 PageHeight = image.Height,
                                                             }
                        });
    }
}
 
public void WmfToPngWithBorders() 
{
    using (Image image = Image.Load("portrt.wmf")) {
        image.Save(
                    "portrt.png",
                    new PngOptions()
                        {
                            VectorRasterizationOptions = new WmfRasterizationOptions
                                                             {
                                                                 BackgroundColor = Color.WhiteSmoke,
                                                                 PageWidth = image.Width,
                                                                 PageHeight = image.Height,
                                                                 BorderX = 50,
                                                                 BorderY = 20
                                                             }
                        });
    }
}
 
▲IMAGINGNET-3336使用ODG文件格式时,将在控制台中打印文本
string fileName = "example.odg";
using (OdgImage image = (OdgImage)Image.Load(fileName))
{
}
 
▲IMAGINGNET-3421 GIF文件未正确转换为PDF
public void TestExportGifToPdf() 
{
    string[] fileNames = new [] {
        "czone.gif",
        "DTRA_LogoType.gif",
        "DTRA_Seal.gif",
        "Equip1.gif",
        "Equip2.gif",
        "Equip3.gif"
    };
    foreach (string fileName in fileNames) {
        using (Image image = Image.Load(fileName))
        {
            image.Save(fileName + ".pdf", new PdfOptions());
        }
    }
}
 
▲IMAGINGNET-3205 RotateFlip操作与PSD无法正常工作
// RotateFlip operation doesn't work as expected with PSD
            string sourceFile = "1.psd";
            string pngPath = "RotateFlipTest2617.png";
            string psdPath = "RotateFlipTest2617.psd";
 
            RotateFlipType flipType = RotateFlipType.Rotate270FlipXY;
            using (var im = (PsdImage)(Image.Load(sourceFile)))
            {
                im.RotateFlip(flipType);
                im.Save(pngPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
                im.Save(psdPath);
            }
 
▲IMAGINGNET-3374将DJVU格式转换为图像的问题
using (DjvuImage image = (DjvuImage)Imaging.Image.Load(@"input.djvu"))
{
PngOptions exportOptions = new PngOptions();
    for (int i = 0; i < image.Pages.Length; i++)
    {
        DjvuPage page = image.Pages[i];
        page.Save(@"page" + i + ".png", exportOptions);
    }
}

 

▲IMAGINGNET-3339 SvgRasterizationOptions大小设置不起作用
using (Image image = Image.Load("test.svg"))
{
    image.Save("test.svg_out.bmp",
        new BmpOptions()
        {
            VectorRasterizationOptions = new SvgRasterizationOptions()
            {
                PageWidth = 100,
                PageHeight = 200
            }
         });
}

-- 未完待续 --

转载于:https://my.oschina.net/u/4087915/blog/3077803

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值