有谁知道任何代码流Jpeg调整大小。我的意思是读取一大块图像(取决于原始来源和目标大小,这显然会有所不同),并调整大小,从而在调整非常大的jpeg时调整内存。显然,这对渐进式jpegs不起作用(或者至少会变得更加复杂),但标准jpeg应该是可能的。流Jpeg Resizer
1
A
回答
2
JPEG数据的设计允许简单调整大小到1/2,1/4或1/8大小。其他变化是可能的。这些相同的尺寸缩小在渐进式jpeg上也很容易实现,如果您想缩小尺寸的图像,在渐进式文件中解析的数据量将会减少很多。除此之外,你的问题还不够具体,无法知道你真正想做什么。
将数据大小减少33%的另一个简单技巧是将图像渲染为RGB565位图而不是RGB24(如果您不需要全色彩空间)。
1
我不知道一个库可以做到这一点,但它当然是可能的。
假设您的JPEG使用的是8x8像素MCU(像素分组的单位)。我们也可以说你正在减少12到1倍。第一个输出像素需要是输入图像左上角的12x12像素块的平均值。要获得y坐标大于8的输入像素,您需要解码第二行MCU的开始。在解码整个第一行MCU之前,您无法真正解码这些像素。实际上,这可能意味着您需要存储两行解码的MCU。尽管如此,对于12000x12000像素图像(大约150万像素),您可以将内存需求减少12000/16 = 750。这对于PC来说应该足够了。如果您正在寻找嵌入式应用,您可以在读取它们时水平调整行的大小,从而将内存需求减少12倍,代价是复杂性更高一些。
我会找到一个简单的jpeg解码器库,如Tiny Jpeg Decoder,并查看jpeg解码函数中的主循环。在Tiny Jpeg Decoder的情况下,主循环调用decode_MCU,从那里修改。 :-)
如果你想减少一个非整数因子,你已经有很多工作要做,以使代码适用于非8x8 MCU,而加载更多。听起来很有趣。祝你好运。
相关问题
- 1. VLC jpeg流
- 2. JPEG到视频流
- 3. 流式传输JPEG,检测JPEG结束
- 4. Font Resizer if else
- 5. headjs resizer问题
- 6. Android Auto Font Resizer
- 7. Iframe resizer not defined
- 8. PHP:Image Croper/Resizer
- 9. JPEG数据流到TImage
- 10. Webmatrix支持Image Resizer
- 11. Image Resizer和ASP.NET Core
- 12. 图像Resizer for ASP.NET
- 13. jquery div resizer like stackoverflow one
- 14. jquery textarea resizer not in POST?
- 15. 使用postMessage跨域iframe resizer
- 16. 从jpeg文件生成交流元素
- 17. JavaScript - 针对穷人视频的JPEG流
- 18. Xuggler从rtsp流中获取jpeg图像
- 19. 从libcurl提供的流中读取jpeg
- 20. Jfif/jpeg解析,流之间的字节
- 21. 使用live555进行JPEG流式传输
- 22. Jpeg from Tiff(jpeg-compressed)
- 23. 如何在IE中添加resizer到textarea?
- 24. iframe-resizer not resize iframe with srcdoc html
- 25. Extjs面板resizer-调整大小后
- 26. 使用Image Resizer保护图像ASP.NET MVC
- 27. 在Wordpress中使用Aqua-Resizer的滑块
- 28. 许多template10 resizer在同一页上
- 29. iframe-resizer发送消息,但未收到
- 30. 编码JPEG和JPEG differene
我想要做的是能够将150兆像素图像转换为更小尺寸(例如1兆像素),而无需使用500兆内存将图像加载到内存中。我希望能够将更小的块加载到内存中,并在那些块上工作,而不是整个块。 – 2009-09-16 21:43:54
你想要做什么将需要自定义代码。我从头开始编写自己的JPEG解码器,可以适应您的目的,而不会有太多麻烦。 x/y解码循环需要每行/每行渲染像素的分数。整数部门肯定是最容易实现的。联系我,如果你需要额外的帮助 - [email protected] – BitBank 2009-09-16 21:52:09