当从stdin传递字节并从stdout读取字节时,graphics使旋转变为90



当我试图传递一个exif旋转为90的jpeg并试图调整大小时,我的调整大小图像会损坏。目前的解决方案是将图像作为文件传递,并将输出作为文件读取。目前,我正在直接从Java processBuilder读取和写入stdin和stdout中的字节。

有人知道为什么会出现这个问题吗?

gm转换-限制线程4-限制内存512M-限制映射1024M-限制磁盘1024M大小2048x1458-压平-锐化1.00x0.95-旋转90-缩放2048x2048>'+配置文件!icm,*-隔行无-类型TrueColor-质量93-采样因子1x1 jpeg:-

更新:这与旋转无关。问题是,jpeg在文件的末尾有一些尾部。

JPEG RST7JPEG RST0JPEG EOI三星预告片(129字节,偏移量0x1ba3ed):

gm识别给出以下结果

rotate_1_37650878940_605a46_o.jpg JPEG 2592x1944+0+0 DirectClass 8位1.7M 0.000u 0:01

gm identify:顺序JPEG的SOS参数无效(rotate_1_37650878940_605a46_o.jpg)。

Graphics Magick转换没有问题。redirectError流被设置为true,因此stderr被stdout(字节)阻塞。

最新更新