たぶん、他の誰かがこの問題に直面したかもしれません: タイトルが示すように、スクリーンショットをデバイスからサーバーにアップロードすると、画質の低下が非常に大きくなります。次のリンクで一例を見ることができます 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=AFQjCNECq7UNMp16pU8WLMl2VZ
また、カメラからの画像は jpeg であるのに対し、スクリーンショット画像は png ファイルとして保存されるという結論に達しました (これはすべての ROM で同じですが、間違っている可能性があります)。これも問題である可能性があります。サポートされている形式から画像ファイルを読み取ると、その画像のデータの生のバイトを取得するため、生のバイトの場合、入力形式は出力圧縮で役割を果たすべきではないため、これが問題になる理由はわかりません。エラーなしで読み取られました。
画像圧縮のコードの関連部分はこれだけですが、さらに情報が必要な場合は、さらに追加できます。
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
私が尋ねている質問は次のとおりです: 他の誰かがこの問題に直面したことがありますか? また、どのように解決しましたか? 適切なファイルサイズで最良の結果を得るには、png画像を(どの設定を使用して)どのように圧縮すればよいですか?
ボーナス:現在、画像のファイル形式を検出する方法を試していますが、誰かがこれを使用して同様の問題を解決した場合は、そのことも回答に記載してください. 編集:ギャラリーから画像の画像形式を取得する方法は、画像の形式を取得するために現在使用している部分ですが、実際には質問に答えません。有益な議論をしてくれたすべての人に感謝します。