求助万能的tg,有关于图片压缩和图片的文件头。转换后图上传
- cc0128使用java的awt里工具压缩图片分辨率。代码大概这样。。
BufferedImage inputbig = new BufferedImage(weight, height,BufferedImage.TYPE_INT_BGR);
inputbig.getGraphics().drawImage(input, 0, 0, weight, height,null); // 画图
ImageIO.write(inputbig, "jpg", newFile);
目前的问题是,大部分图片都正常。部分图片就偏色。。
我找了转换颜色有问题的图片。
用ue打开发现文件头和其他正常的jpg图片不一样。。虽然都是jpg结尾的文件。。而且windows都能打开。。
正常的应该是
FF D8 FF E0 00 10 4A 46 49 46 00 01
这个图片是
FF D8 FF DB
图片已经奉上。。
求解决方法。。
没有方法思路也成。。
这到底是神马图片。。
10楼附件
是转换后的图片
[本帖最后由 cc0128 于 2011-10-27 09:28 编辑] - cc0128
tgfc也没办法么
- 2339923FileOutputStream newimage=new FileOutputStream(image_name);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
JPEGEncodeParam jep=JPEGCodec.getDefaultJPEGEncodeParam(inputbig);
jep.setQuality(per, true);
encoder.encode(inputbig, jep);
newimage.close();
第四行的per是百分比,float类型。楼主试试用这个输出文件,不用ImageIO.write(inputbig, "jpg", newFile); - cc0128一样的问题。
- cc0128up
- sectionboy把你压错的图贴上来。FF E0是JFIF信息标志,和具体解压无关。FFDB是DQT开始,这个不会错的。
- cc0128压缩包里就是错误的图片。
直接传dicuzz会改对。。。 - sectionboy你後存的顏色有誤的圖片啥樣?
[本帖最后由 sectionboy 于 2011-10-27 08:50 编辑] - cc0128回头到给公司了上传上来哈。
- cc0128里面有4张图。2张转换前。2张转换后
- sectionboyG存成了R,其他两个不见了。
- cc0128谢谢哈,有啥解决的方法没。
能把这种格式的图转成jfif的么。
完全不知道如何处理这种图。我直接用的java自带的api弄的。
原理完全不懂啊。
现在两眼一抹黑。。这bug完全不知道咋办、。。
[本帖最后由 cc0128 于 2011-10-27 10:56 编辑] - sectionboy(可能是废话)能升的级都升了没?:D
- cc0128果然是废话。
- cc0128
不管了。做个识别反正这种图片都不让上传。
- sectionboybug a bug
[本帖最后由 sectionboy 于 2011-10-28 05:13 编辑] - cc0128谢谢哈。试过了。不管是bgr。rgb。rbg全没戏。。
- sectionboy是ImageIO.read有bug,所以要换成 javax.swing.ImageIcon
- cc0128
感谢,搞定了