2013-07-06 56 views
0

我想將圖像的像素從圖像箱複製到TIFF文件。我也想使用TIFF標籤,所以我使用LibTiff.Net。圖像從圖像箱到32位浮點tiff文件

我認爲,我首先使用將圖像從圖像複製到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(); 
} 
+0

它看起來像你濫用該網站。你已經連續詢問了第四個問題關於完全相同的問題。 – Bobrovsky

+0

它不是那樣..我只是真的需要一個有用的答案 – user2542022

回答

1

我與編程經驗非常少,但我發現隨機你的問題與谷歌。

我想你會得到條形碼,因爲源圖像被壓縮(如.jpg),因此您將壓縮數據加載到內存流和tiff文件中,而不是像素數據本身。

也許嘗試將您的圖像轉換爲未壓縮的位圖文件並嘗試結束。

+0

以及我應該怎麼做?你能寫一些代碼什麼的嗎? – user2542022

+0

Idk,爲JPEG找到一些庫,確定它們將具有解壓縮功能,Google和Man頁面是你的朋友 – Krz