我有一个可以在ImageJ中查看的文件,但是大多数软件都是用黑色显示的。我试图在C#中查看它,但是它只是变黑了,在画图中也是不可见的,但是我可以在INcarta和ImageJ中查看它。该文件是一个16位的tiff,似乎具有LZW压缩。
我试图使用ImageSharp解码这个图像,然后将其显示为位图。下面是指向文件https://drive.google.com/file/d/16Xotc-2CJ6HkEJDysfKBkjClkU1OGiyQ/view?usp=sharing的链接
byte[] data = File.ReadAllBytes(fileToDisplay1);
SixLabors.ImageSharp.Formats.Tiff.TiffDecoder decoder = new SixLabors.ImageSharp.Formats.Tiff.TiffDecoder();
SixLabors.ImageSharp.Formats.Tiff.TiffEncoder encoder = new SixLabors.ImageSharp.Formats.Tiff.TiffEncoder();
SixLabors.ImageSharp.Image? image = SixLabors.ImageSharp.Image.Load(data, decoder);
System.Drawing.Bitmap bMap;
using (var ms = new MemoryStream())
{
image.Save(ms, encoder);
bMap = new Bitmap(ms);
}
我也尝试过ImageMagickQ16
byte[] data = File.ReadAllBytes(fileToDisplay1);
var decoder = new SixLabors.ImageSharp.Formats.Tiff.TiffDecoder();
var encoder = new SixLabors.ImageSharp.Formats.Tiff.TiffEncoder();
//encoder.BitsPerPixel = SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerPixel.Bit16;
var image = SixLabors.ImageSharp.Image.Load(data, decoder);
MagickImage im2;
using (var ms = new MemoryStream())
{
image.Save(ms, encoder);
im2 = new MagickImage(ms.ToArray());
}
//im2.Depth = 16;
//im2.Grayscale();
im2.AutoLevel();
return im2.ToBitmap();
文件看起来是这样的:在ImageJ中,但是当我上传它或尝试使用其他软件时,它是黑色的。
我.我已经说出了我尝试过的其他事情
发布于 2022-09-27 00:48:48
Imagemagick标识-verbose认为您的数据是二进制的,只是黑白的。所以Imagemagick有一些错误。
Image:
Filename: mystery.tif
Format: TIFF (Tagged Image File Format)
Mime type: image/tiff
Class: DirectClass
Geometry: 2040x2040+0+0
Units: PixelsPerInch
Colorspace: Gray
Type: Bilevel
Base type: Grayscale
Endianness: LSB
Depth: 16/1-bit
Channel depth:
gray: 1-bit
Channel statistics:
Pixels: 4161600
Gray:
min: 0 (0)
max: 0 (0)
mean: 0 (0)
standard deviation: 0 (0)
kurtosis: -3
skewness: 0
entropy: 0
Colors: 1
Histogram:
4161600: (0,0,0) #000000000000 gray(0)
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Background color: gray(255)
Border color: gray(223)
Matte color: gray(189)
Transparent color: gray(0)
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 2040x2040+0+0
Dispose: Undefined
Iterations: 0
Compression: LZW
Orientation: TopLeft
Properties:
date:create: 2022-09-27T00:43:06+00:00
date:modify: 2022-09-27T00:42:39+00:00
date:timestamp: 2022-09-27T00:43:25+00:00
signature: 28f00fa3c1987b7b8f92961ef3a2d442cca23dbbb7c568b8908cc2fa2271de60
tiff:alpha: unspecified
tiff:endian: lsb
tiff:photometric: min-is-black
Artifacts:
filename: mystery.tif
verbose: true
Tainted: False
Filesize: 48240B
Number pixels: 4161600
Pixels per second: 84.8629MB
User time: 0.060u
Elapsed time: 0:01.049
Version: ImageMagick 6.9.12-64 Q16 aarch64 17467 https://legacy.imagemagick.org
Mac,GraphicConverter和Photoshop可以读取你的图像,但是16位范围内的灰度很低。因此,乍一看,它们似乎是黑色的。如果图像动态范围被扩展,特征就会显示出来。
但是这并不适用于Imagemagick,因为它认为数据是二进制的,因此,所有数据值都很低,都被放入了黑箱中。
在https://github.com/ImageMagick/ImageMagick/issues的Imagemagick网站上发布和出错
根据tiff文档,这要么是Imagemagick中的bug,要么是您的文件格式错误。IM开发人员将需要决定哪一个。
https://stackoverflow.com/questions/73860945
复制相似问题