3

我试图将位图列表写入 tif

在标准的 .net 代码中,tif 变成了一个巨大的文件,我理解这是因为它不支持 jpeg 压缩

研究表明 libtiff 应该能够处理这个问题,尽管我找不到任何将位图写入文件的简单示例

这是我所拥有的(基本上是从文档中复制粘贴的)

Sub MakeTiff(Input As List(Of Bitmap))
        Dim fileName As String = "random.tif"
        Using output As Tiff = Tiff.Open(fileName, "w")
            For Each item In Input
                output.SetField(TiffTag.IMAGEWIDTH, 100)
                output.SetField(TiffTag.IMAGELENGTH, 100)
                output.SetField(TiffTag.SAMPLESPERPIXEL, 1)
                output.SetField(TiffTag.BITSPERSAMPLE, 8)
                output.SetField(TiffTag.ORIENTATION, Orientation.TOPLEFT)
                output.SetField(TiffTag.ROWSPERSTRIP, 100)
                output.SetField(TiffTag.XRESOLUTION, 88.0)
                output.SetField(TiffTag.YRESOLUTION, 88.0)
                output.SetField(TiffTag.RESOLUTIONUNIT, ResUnit.INCH)
                output.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG)
                output.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISBLACK)
                output.SetField(TiffTag.COMPRESSION, Compression.NONE)
                output.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB)
                Dim bd = item.GetData
                Dim offset = 0
                For i = 0 To bd.Height
                    output.WriteScanline(bd.Bytes, offset, i, 0)
                    offset += bd.Stride
                Next
                output.WriteDirectory()
            Next
        End Using
        Process.Start(fileName)
    End Sub

但最终结果是文件损坏。

我真的不明白所有这些设置,我所需要的只是以某种方式将 jpg 添加到 tiff

任何人都可以帮助提供代码片段吗?或其他免费/低成本的压缩 tiff 创作者?

谢谢

4

0 回答 0