我有一个金字塔平铺的tiff文件,我想提取没有解码和重新编码jpeg的图块,我已经看到使用TIFFReadRawTile()函数可以提取未经解码的原始瓦片,我如何将提取的缓冲区写入可读的jpeg文件?使用libtiff的TIFFReadRawTile得到没有解压缩/压缩的JPEG图块
0
A
回答
0
我发现实际上没有办法直接搞乱tiff的huffmann表,这很棘手。
我发现的唯一方法是读取已解码的图块,然后用vips直接输出到jpeg来做一些魔术。
tdata_t buf;
tsize_t len;
buf = _TIFFmalloc(TIFFTileSize(tif));
len = TIFFReadEncodedTile(tif, tile, buf, (tsize_t) -1);
VImage result ((void *) buf, 256, 256, 3, VImage::FMTUCHAR);
void *outBuffer;
unsigned long len;
vips_jpegsave_buffer(result, &outBuffer, &len, "Q", 90, NULL);
和使用cout在一些标题后输出图像。
0
你正在做的任务不是一件小事。你可能想仔细看看tiff2pdf工具的源代码。该实用程序可以完成您所需的任务,并且可以从中提取相关的部分。
问题是,该实用程序会做很多其他事情,你将不得不放弃。此外,该实用程序不能成功处理任何JPEG-in-TIFF。基本上,因为有足够的半破TIFFs在那里。
相关问题
- 1. JPEG图像压缩
- 2. 如何使用无损方法压缩和解压缩JPEG?
- 3. JPEG压缩C#
- 4. JPEG压缩
- 5. jpeg压缩比
- 6. 尝试压缩图像(Gzip + Jpeg),然后解压缩它们
- 7. Java压缩和解压缩byte []块
- 8. PHP GD压缩PNG,但不压缩Jpeg
- 9. 使用java.util.zip压缩得到解压缩充气错误
- 10. 解压缩(解压缩)由.net压缩(解压缩)的文件.net system.io.compression.gzipstream
- 11. JPEG - >更多压缩JPEG - 值得吗?
- 12. 使用Compression.DeflateStream压缩和解压缩流
- 13. TDD和JPEG压缩
- 14. DeflateStream压缩/解压缩inconsitency
- 15. Asmx Webservice压缩/解压缩?
- 16. Java LZW压缩和解压缩图像
- 17. 解压缩PVRTC压缩图像格式?
- 18. RLE使用java压缩解压图像
- 19. JPEG压缩和解压缩一遍又一遍
- 20. jpeg图像的快速解压缩和重新缩放算法
- 21. 的zlib压缩/解压缩Linux编程
- 22. 如何解压缩压缩的内核
- 23. 压缩解压缩的exe文件
- 24. png文件的压缩和解压缩
- 25. 解压缩和解压缩建议?
- 26. 解压缩使用的sed
- 27. glassfish响应没有得到gzip压缩
- 28. JPEG图像压缩中的量化
- 29. zlib,如何解压缩压缩数据块的流?
- 30. Windows压缩文件夹没有完全解压缩zip
让我检查一下tiff2pdf的源代码,顺便说一句,JPEG-in-TIFF总是由我使用vips2tiff命令制作的,所以它总是以相同的格式转换。其实我只是把它与TIFFReadEncodedTile()一起工作到一个vips图像,但我希望如果可能跳过解码/编码部分 – alex88
不幸的是,我对vips2tiff一无所知,所以我不能说这是一个比起始点好的起点tiff2pdf。 – Bobrovsky
不要担心,只是TIFFReadEncodedTile解码JPEG,RAW版本会返回编码的JPEG,但我认为您需要添加一些jpeg元数据 – alex88