私はJavaアプリケーションを使用して、ユーザーがカメラから写真を撮り、Webサービスを使用して送信できるようにしていますが、画像の送信中に問題が発生します。画像が大きいので送信に時間がかかるので画像を圧縮したい。私はしようとしました:
1- 次のコードを使用します。
Bitmap img = BitmapFactory.decodeFile("C:\\test.jpg");
ByteArrayOutputStream streem = new ByteArrayOutputStream();
img.compress(Bitmap.CompressFormat.JPEG, 75, streem);
byte[] b = streem.toByteArray();
しかし、このコードは私の場合は役に立ちません。なぜなら、それは画像を非常に悪くし、画像サイズにあまり影響を与えないからです。
2- サイズを変更する方法について多くを検索しますが、すべての結果は BufferedImage を使用しています。多くのメモリサイズが必要なため、この型(クラス)を使用できません:
private static BufferedImage resizeImage(BufferedImage originalImage, int type)
{
BufferedImage resizedImage = new BufferedImage(new_w, new_h, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, new_w, new_h, null);
g.dispose();
return resizedImage;
}
代わりにビットマップを使用したいのですが、私のアプリケーションではどんな体でも助けてくれますか???