在Mac OS X上使用System.Drawing.Common将BMP转换为TIFF

汤姆·科登霍夫

我正在尝试System.Drawing.Common在Mac OS上使用以下C#代码(.NET CORE 3.1)将BMP图像转换为tiff图像

        public void SaveBitmapAsTiff(string location, Bitmap image)
        {

            var imageCodecInfo = GetEncoderInfo("image/tiff");
            var encoder = Encoder.Compression;
            var encoderParameters = new EncoderParameters(1);
            
            var encoderParameter = new EncoderParameter(
                encoder,
                (long)EncoderValue.CompressionLZW);
            encoderParameters.Param[0] = encoderParameter;
            location = location.Replace(".bmp", "");
            image.Save(location + ".tiff", imageCodecInfo, encoderParameters);
            // image.Save(location + ".tiff", ImageFormat.Tiff); Also tried this method overload
        }
        
        private static ImageCodecInfo GetEncoderInfo(string mimeType)
        {
            int j;
            ImageCodecInfo[] encoders;
            encoders = ImageCodecInfo.GetImageEncoders();
            for(j = 0; j < encoders.Length; ++j)
            {
                if(encoders[j].MimeType == mimeType)
                    return encoders[j];
            }
            return null;
        }

location参数包含我们要写入的文件路径和image参数包含我们从磁盘加载位图。

当我尝试运行此代码时,出现以下异常:

Unhandled exception. System.NotImplementedException: Not implemented.
   at System.Drawing.SafeNativeMethods.Gdip.CheckStatus(Int32 status)
   at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
   at System.Drawing.Image.Save(String filename, ImageFormat format)
   at BmpTiffConverter.Services.FileService.SaveBitmapAsTiff(String location, Bitmap image) in /Users/tomcoldenhoff/Documents/ReSoftware/Repositories/BmpTiffConverter/BmpTiffConverter/Services/FileService.cs:line 54
   at BmpTiffConverter.Services.ConverterService.ConvertBmpToTiff(String inputPath, String outputPath) in /Users/tomcoldenhoff/Documents/ReSoftware/Repositories/BmpTiffConverter/BmpTiffConverter/Services/ConverterService.cs:line 20

我的谷歌搜索建议我只好装libgdiplus我已经与做brew install mono-libgdiplusbrew upgrade mono-libgdiplus

我还通过安装runtime.osx.10.10-x64.CoreCompat.System.Drawing软件包尝试了@Andy的建议答案,不幸的是这没有用。

有人有其他建议吗?

安迪

问题是mono-libgdiplus没有实现EncoderValue.CompressionLZW编码器参数。我建议不要使用该库,而是安装此nuget包:

Mac OS的libgdiplus

runtime.osx.10.10-x64.CoreCompat.System.Drawing

一旦添加了该软件包,您的代码就可以完美运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Mac OS X上使用java命令运行DynamoDB Local

来自分类Dev

在Mac OS X上使用pip安装pyopencv

来自分类Dev

无法在Mac OS X上使用NPM安装Cordova

来自分类Dev

使用sed在Mac OS X上删除回车

来自分类Dev

在Mac OS X 10.9(Mavericks)上使用macports安装opencv

来自分类Dev

使用Mac OS X上的键盘关闭pyplot图

来自分类Dev

在Mac OS X上将C int转换为char数组

来自分类Dev

R:如何在Mac OS X Mavericks上安装软件包tiff?

来自分类Dev

使用Homebrew在Mac OS X上安装libRmath

来自分类Dev

将int转换为System.Drawing.Brushes.SomeColor吗?

来自分类Dev

在OS X / Mac上使用Windows蓝牙API?

来自分类Dev

在Mac OS X上使用gstreamer的Pocketsphinx。AudioUnitRender返回-10863

来自分类Dev

将System :: Drawing :: Bitmap ^转换为:: MAT

来自分类Dev

如何使用Homebrew在Mac OS X 10.10.2上安装R?

来自分类Dev

在Mac OS X上使用SWIG为JavaScript编译C ++

来自分类Dev

PHP在Mac OS X上不使用更新的OpenSSL

来自分类Dev

在Mac OS X上的TFS

来自分类Dev

在Mac OS X上使用Conda安装pyzbar时出错

来自分类Dev

将System.Drawing.Icon转换为SkiaSharp.SKBitmap

来自分类Dev

将类型转换为System.Drawing.Image

来自分类Dev

如何在Mac OS X上使用Windows键盘?

来自分类Dev

在Mac OS X上卸载?

来自分类Dev

Mac OS X上的Python

来自分类Dev

Mac OS X:将常规F键转换为媒体键

来自分类Dev

R:如何在Mac OS X Mavericks上安装软件包tiff?

来自分类Dev

将GTK#颜色转换为System.Drawing.Color

来自分类Dev

在Mac OS上使用Tuareg(OCaml)将utop与emacs集成

来自分类Dev

将[System.Drawing.Bitmap]转换为[File.IFileAbstraction]

来自分类Dev

Xamarin Android(Mac) 持续错误:“无法加载 System.Drawing”

Related 相关文章

热门标签

归档