繁体   English   中英

旋转图像而不将整个图像保存在内存中

[英]Rotate images without saving the whole image in memory

我正在使用PNGJ库保存一个大的PNG文件(40000 x 3000)。 现在我需要将图像向右旋转90度而不将整个图像保存在内存中。 PNGJ库仅限于逐行写入图像,因此我无法旋转每一行并逐列写入imagem。

有没有办法做到这一点?

PNGJ库仅限于逐行写入图像

实际上,PNG格式是面向行的。 如果不读取所有“之前”像素,就无法读取PNG图像的单个像素。 所以,我想你运气不好。

我认为,如果你不能将完整的图像存储在内存中,你可以做的最好的事情就是用K水平条纹加载和写入它。 您通过读取完整图像填充第一个条带(您只存储每行的第一个像素,对应于旋转图像的第一个水平条纹的像素,丢弃其余部分),写入,然后再次读取文件填写并写入第二个条带等。这涉及原始文件的K读数(当然,您应该使条带像您的内存允许的那样厚,以便使K小)。 我希望你明白这个主意。

你可以用PNGJ做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM