我使用PNGJ库保存了一个大型PNG文件(40000 x 3000)。现在我需要将图像向右旋转90度而不将整个图像保存在内存中。 PNGJ库仅限于逐行写入图像,因此我无法旋转每一行并逐列写入imagem。
有没有办法做到这一点?
答案 0 :(得分:3)
PNGJ库仅限于逐行写入图像
实际上,它的PNG格式是面向行的。并且您无法读取所有"之前的"而无法读取PNG图像的单个像素。像素。所以,我猜你运气不好。
我认为,如果您无法将完整图像存储在内存中,那么您可以做的最好的事情就是通过K
水平条纹加载和写入它。您通过读取完整图像填充第一个条带(您只存储每行的第一个像素,对应于旋转图像的第一个水平条纹的像素,丢弃其余部分),写入,然后再次读取文件填写并写第二个条纹等
这涉及原始文件的K
读数(当然,您应该使条带与内存允许的一样厚,以使K
变小。我希望你明白这一点。
你可以用PNGJ做到这一点。