首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Magick.NET读取中设置位深度

如何在Magick.NET读取中设置位深度
EN

Stack Overflow用户
提问于 2018-07-18 23:58:16
回答 2查看 3K关注 0票数 2

在读取二进制文件时,如何指定MagickImage.Read()函数的位深度?

我有一个由8位灰度值表示的1024x1024图像(总文件长度= 1024x1024 = 1048576字节)。使用ImageMagick v.7.0.8-7 Q16 x64,我可以使用

代码语言:javascript
运行
复制
magick.exe -depth 8 -size 1024x1024 -format Gray Gray:filepath.bin convertedfile.png

当我尝试使用Magick.NET Q16-AnyCPU v7.5.0.1转换文件时,

代码语言:javascript
运行
复制
public MagickImage ReadNewMagickImageFromBinary(string fileName){
    MagickReadSettings settings = new MagickReadSettings();

    settings.Width = 1024;
    settings.Height = 1024; //if I use settings.Height = 512; , I'm OK.
    settings.Format = MagickFormat.Gray;
    //settings.Depth = 8;                                   //didn't work
    //settings.SetDefine(MagickFormat.Gray, "depth", "8");  //also didn't work

    MagickImage newImage = new MagickImage();
    newImage.Depth = 8; //this appears to be ignored once the Read function is called
    newImage.Read(fileName, settings);

    return newImage;
}

我知道错误了

消息: ImageMagick.MagickCorruptImageErrorException :意外结束文件'':没有这样的文件或目录@ error/gray.c/ReadGRAYImage/241

指示程序已读过文件的末尾。我已经证实,Magick.NET正在恢复到16位深度,而不是我想要的8位深度。我可以使用settings.Height = 512而不是1024来读取文件,这给了我灰阶图像的压缩版本。

我从Memory consumption in Magick.NET中了解到,Magick.NET Q16以16位的精度在内存中存储像素;我对此没有意见,但似乎不应该排除8位的读取能力。

如何强制Magick.NET Q16读取8位深度的像素?

EN

Stack Overflow用户

回答已采纳

发布于 2018-07-29 18:56:39

我刚刚发布了Magick.NET 7.6.0.0,它现在有了更好的读取原始像素的API。您应该将代码更改为:

代码语言:javascript
运行
复制
public MagickImage ReadNewMagickImageFromBinary(string fileName)
{
    var width = 1024;
    var height = 1024;
    var storageType = StorageType.Char;
    var mapping = "R";
    var pixelStorageSettings = new PixelStorageSettings(width, height, storageType, mapping);

    return new MagickImage(fileName, pixelStorageSettings);
}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51412492

复制
相关文章

相似问题

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