我正在尝试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-libgdiplus
和brew upgrade mono-libgdiplus
。
我还通过安装runtime.osx.10.10-x64.CoreCompat.System.Drawing
软件包尝试了@Andy的建议答案,不幸的是这没有用。
有人有其他建议吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句