【发布时间】:2013-05-23 09:30:07
【问题描述】:
也许其他人也遇到过这个问题: 正如标题所说,当从设备上传屏幕截图到我们的服务器时,图像质量下降非常高。您可以在以下链接中看到一个示例 http://cdn.voicebo.com/7507-05e6a7b3bf91d96b2d08da649c2ef590.jpg
此屏幕截图是在 Nexus 4 上拍摄的,但同样的情况也发生在 Galaxy S2、S3 和 Note 2 上。不幸的是,我们目前没有更多的手机可以对此进行测试,但考虑到以下型号的受欢迎程度,这会影响我们的大量用户.
我已经搜索了很长一段时间来寻找可能发生这种情况的答案或原因,并发现以下链接不是我真正想要的,但包含一些信息 http://www.google.rs/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCYQFjAA&url=http%3A%2F%2Fandroidforums.com%2Fsamsung-galaxy-s3%2F580114-screenshot-glitch.html&ei=1dKdUbPNA8nBO7G9gPgE&usg=AFQjCNECq7UNMp16pU8WLMlLwZVb4i2Ofw
我还得出结论,屏幕截图图像保存为 png 文件,而来自相机的图像保存为 jpeg(我认为这对于所有 ROMS 都是相同的,但可能是错误的)所以这也可能是问题所在。我不明白为什么这是一个问题,因为据我了解,当您从任何支持的格式读取图像文件时,您会获得该图像的原始数据字节,因此如果原始字节,输入格式不应在输出压缩中起作用阅读没有错误。
图像压缩中的相关代码部分仅此而已,但如果需要更多信息,我可以添加更多:
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
我要问的问题是: 有没有其他人遇到过这个问题,你是如何解决的? 我应该如何压缩 png 图像(使用什么设置)以在合理的文件大小下获得最佳效果?
奖励:我目前正在尝试一种方法来检测图像的文件格式,但如果有人用它来解决类似的问题,请在回答中提及。 编辑:How to get the Image Format of the images from Gallery 是我现在用来获取图像格式的部分,但这实际上并不能回答问题。感谢所有在场的人进行有益的讨论。
【问题讨论】:
-
PNG 是一种无损格式(它具有压缩功能,但不会对图像质量产生任何影响),因此您得到的就是您输入的内容。您通常只对 PNG 压缩设置进行有限控制(如果有)。您的问题似乎是屏幕抓取算法只占用了一小部分可用像素......或者您的分辨率正在管道中的其他地方被故意降低。更多信息(您如何进行屏幕抓取,它们如何发送到您的服务器等)可能会有所帮助。这实际上是一个编程(即 StackOverflow)问题吗?
-
编辑:愚蠢的 5 分钟。规则 感谢您的回复。是的,这是一个编程问题,即使您提交的链接实际上不是关于编程而是用户检测到的行为。我们的应用程序不会抓取屏幕截图,但用户使用 ROM 中的可用选项制作它们,在三星设备上可以使用 screnshoot 键组合,例如 S2 具有 vol-power。这些是用户可以在我们的应用程序中选择“从图库选项”中选择上传的图像。我知道 PNG 的损失,这是最令人困惑的部分,因为我从无损格式和有损格式中得到最差的结果。
-
如果您的用户截取屏幕截图,然后在设备上查看生成的文件,是否会出现同样的问题?您说屏幕抓取是 PNG,但您提供的示例是 JPEG。这种转换是在哪里(以及为什么)进行的?
-
尝试从 Eclipse 截取截图
标签: android screenshot