从imagebox到32位浮点tiff文件的图像

从imagebox到32位浮点tiff文件的图像,image,picturebox,tiff,libtiff.net,Image,Picturebox,Tiff,Libtiff.net,我想将图像的像素从imagebox复制到TIFF文件。我也想使用TIFF标签,所以我使用LibTiff.Net 我认为首先我使用将图像从imagebox复制到MemoryStream,然后将内存流复制到字节数组中,最后将字节数组中的字节写入TIFF文件。但是我不知道怎么做 我经历了所有的过程,但我在文件中得到的只是一些“条形码”。哦,我需要32位浮点的输出文件 到目前为止,我的收获如下: Tiff output = Tiff.Open(filename, "w"); if (output ==

我想将图像的像素从imagebox复制到TIFF文件。我也想使用TIFF标签,所以我使用LibTiff.Net

我认为首先我使用将图像从imagebox复制到
MemoryStream
,然后将内存流复制到字节数组中,最后将字节数组中的字节写入TIFF文件。但是我不知道怎么做

我经历了所有的过程,但我在文件中得到的只是一些“条形码”。哦,我需要32位浮点的输出文件

到目前为止,我的收获如下:

Tiff output = Tiff.Open(filename, "w");
if (output == null)
{
    return;
}
else
{
    MemoryStream ms = new MemoryStream();

    this.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff);

    byte[] buff = ms.GetBuffer();

    output.SetField(TiffTag.IMAGEWIDTH, width);
    output.SetField(TiffTag.IMAGELENGTH, height);
    output.SetField(TiffTag.SAMPLESPERPIXEL, 1);
    output.SetField(TiffTag.BITSPERSAMPLE, 32);
    output.SetField(TiffTag.SAMPLEFORMAT, 3);
    output.SetField(TiffTag.ORIENTATION, BitMiracle.LibTiff.Classic.Orientation.TOPLEFT);
    output.SetField(TiffTag.ROWSPERSTRIP, height);
    output.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);
    output.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISBLACK);
    output.SetField(TiffTag.COMPRESSION, Compression.NONE);
    output.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB);

    for (int i = 0; i < height; ++i)
        output.WriteScanline(buff, i);

    ms.Close();
    output.Close();
}
Tiff输出=Tiff.Open(文件名,“w”);
if(输出==null)
{
返回;
}
其他的
{
MemoryStream ms=新的MemoryStream();
保存(ms,System.Drawing.Imaging.ImageFormat.Tiff);
字节[]buff=ms.GetBuffer();
output.SetField(TiffTag.IMAGEWIDTH,width);
output.SetField(TiffTag.IMAGELENGTH,height);
output.SetField(TiffTag.samplesperpoixel,1);
output.SetField(TiffTag.BITSPERSAMPLE,32);
output.SetField(TiffTag.SAMPLEFORMAT,3);
output.SetField(TiffTag.ORIENTATION,BitMiracle.LibTiff.Classic.ORIENTATION.TOPLEFT);
output.SetField(TiffTag.ROWSPERSTRIP,高度);
设置字段(TiffTag.PLANARCONFIG,PLANARCONFIG.CONTIG);
输出设置字段(TiffTag.photomic,光度控制.MiniBlack);
output.SetField(TiffTag.COMPRESSION,COMPRESSION.NONE);
SetField(TiffTag.FILLORDER,FILLORDER.MSB2LSB);
对于(int i=0;i
我几乎没有编程经验,但我在谷歌上随机发现了你的问题

我认为你得到条形码是因为源图像是压缩的(比如.jpg),所以你把压缩的数据加载到内存流和tiff文件中,而不是像素数据本身


也许可以尝试将图像转换为未压缩的位图文件,然后再试一次。

我该怎么做?你能写些代码什么的吗?Idk,找一些JPEG的库,当然他们会有解压功能,谷歌和手册页是你的朋友。看起来你在滥用这个网站。你已经连续问了第四个问题,是关于同一个问题的。不是那样的。。我真的需要一个有用的答案