首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Aspose成像图像光学构造器

Aspose成像图像光学构造器
EN

Stack Overflow用户
提问于 2017-08-24 02:56:15
回答 1查看 234关注 0票数 0

我已经安装了新版本的As姿势成像组件(版本17.7.0.0),我需要重写代码,以便它将支持下面的新版本组件,如果我需要重写

因为它不接受默认构造函数,所以tiff选项代码存在问题

代码语言:javascript
运行
复制
public void ImageToTIFF(string imagePath, string outputPath, string server, string folder, int sequenceNumber)
    {
        int page = 0;
        using (Aspose.Imaging.Image inputImage = Aspose.Imaging.Image.Load(imagePath))
        {
            page++;
            Aspose.Imaging.ImageOptions.TiffOptions tiffSaveOptions = new Aspose.Imaging.ImageOptions.TiffOptions();
            tiffSaveOptions.Compression = Aspose.Imaging.FileFormats.Tiff.Enums.TiffCompressions.CcittFax4;
            tiffSaveOptions.Photometric = Aspose.Imaging.FileFormats.Tiff.Enums.TiffPhotometrics.MinIsBlack;
            tiffSaveOptions.BitsPerSample = new ushort[] {1};
            tiffSaveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.CreateMonochrome();

            // Get the pixels of image by specifying the area as image boundary
            Aspose.Imaging.RasterImage image = inputImage as Aspose.Imaging.RasterImage;
            Aspose.Imaging.Color[] imageColors = image.LoadPixels(inputImage.Bounds);
            int power;
            for (int i = 0; i <= imageColors.Length - 1; i++)
            {
                try
                {
                    power = (int)imageColors[i].R + (int)imageColors[i].G + (int)imageColors[i].B;
                    if (power < 380)
                    {
                        imageColors[i] = Aspose.Imaging.Color.White;
                    }
                    else
                    {
                        imageColors[i] = Aspose.Imaging.Color.Black;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("i: {0}, imageColors[i].R: {1}, imageColors[i].G: {2}, imageColors[i].B: {3}", i, imageColors[i].R, imageColors[i].G, imageColors[i].B);
                    Console.WriteLine("Error: {0}", ex.Message);
                    imageColors[i] = Aspose.Imaging.Color.White;
                }
            }

            Aspose.Imaging.RasterImage imagePixels = inputImage as Aspose.Imaging.RasterImage;
            imagePixels.SavePixels(inputImage.Bounds, imageColors);
            inputImage.Save(outputPath + FileCreateTime(new FileInfo(imagePath)) + "_" + server + "_" + folder + "_" + sequenceNumber.ToString("D6") + "_" + page.ToString("D4") + ".tif", tiffSaveOptions);
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2017-08-25 00:34:24

我观察到了您的需求,并希望与您分享,Aspose.Imaging中的TiffOptions类没有默认的空构造函数可用。我建议您尝试在您的终端上使用以下替代示例代码来实现此目的。

代码语言:javascript
运行
复制
public void ImageToTIFF(string imagePath, string outputPath, string server, string folder, int sequenceNumber)
{
    int page = 0;
    using (Aspose.Imaging.Image inputImage = Aspose.Imaging.Image.Load(imagePath))
    {
        page++;
        Aspose.Imaging.ImageOptions.TiffOptions tiffSaveOptions = new Aspose.Imaging.ImageOptions.TiffOptions(TiffExpectedFormat.Default);
        tiffSaveOptions.Compression = Aspose.Imaging.FileFormats.Tiff.Enums.TiffCompressions.CcittFax4;
        tiffSaveOptions.Photometric = Aspose.Imaging.FileFormats.Tiff.Enums.TiffPhotometrics.MinIsBlack;
        tiffSaveOptions.BitsPerSample = new ushort[] { 1 };
        tiffSaveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.CreateMonochrome();

        // Get the pixels of image by specifying the area as image boundary
        Aspose.Imaging.RasterImage image = inputImage as Aspose.Imaging.RasterImage;
        Aspose.Imaging.Color[] imageColors = image.LoadPixels(inputImage.Bounds);
        int power;
        for (int i = 0; i <= imageColors.Length - 1; i++)
        {
            try
            {
                power = (int)imageColors[i].R + (int)imageColors[i].G + (int)imageColors[i].B;
                if (power < 380)
                {
                    imageColors[i] = Aspose.Imaging.Color.White;
                }
                else
                {
                    imageColors[i] = Aspose.Imaging.Color.Black;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("i: {0}, imageColors[i].R: {1}, imageColors[i].G: {2}, imageColors[i].B: {3}", i, imageColors[i].R, imageColors[i].G, imageColors[i].B);
                Console.WriteLine("Error: {0}", ex.Message);
                imageColors[i] = Aspose.Imaging.Color.White;
            }
        }

        Aspose.Imaging.RasterImage imagePixels = inputImage as Aspose.Imaging.RasterImage;
        imagePixels.SavePixels(inputImage.Bounds, imageColors);
        inputImage.Save(outputPath + FileCreateTime(new FileInfo(imagePath)) + "_" + server + "_" + folder + "_" + sequenceNumber.ToString("D6") + "_" + page.ToString("D4") + ".tif", tiffSaveOptions);
    }
}

我希望分享的信息会对你有所帮助。

我在Aspose担任支持开发人员/布道者。

非常感谢,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45847443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档