首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPEG到位图到JPEG

JPEG到位图到JPEG
EN

Stack Overflow用户
提问于 2014-08-26 05:48:43
回答 1查看 163关注 0票数 0

我试图制作一个图像文件的副本,首先将图像文件解码为位图,然后将其压缩回JPEG。副本(~3Mbs)大于原始文件(~2mbs)。有没有办法创建一个完全相同的副本?

代码语言:javascript
复制
        Bitmap origBitmap = BitmapFactory.decodeFile(file);
        FileOutputStream out = new FileOutputStream(file);
        origBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
        // this will give me a copy larger than the original image

我知道我可以使用FileOutputStream和FileInputStream创建一个完全相同的副本。但我想对副本做一些修改,安卓不支持Javax.ImageIO。

代码语言:javascript
复制
        FileOutputStream out = new FileOutputStream(file);
        File old_file = new File(filePath);
        FileInputStream input = new FileInputStream(old_file); 
        copyStream(input, out);
        // this will give me an exact copy
EN

回答 1

Stack Overflow用户

发布于 2014-08-26 05:51:48

JPEG是一种有损格式,这意味着每次使用该算法时都会丢失一些数据。你每次这样做的时候,即使是在高质量的设置下,它看起来也会更糟。

您的副本可能较大,因为您使用的质量设置为100。我敢打赌,原始文件是用较低质量的设置制作的-通常人们使用70到90之间的设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25494884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档