我有一个 java 应用程序允许用户从他的相机拍摄照片并使用网络服务将其发送给我,但我的问题是在发送图像时。发送进度需要很长时间,因为图像很大,所以我想压缩图像。我试图:
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;
}
我想改用位图,任何人都可以在我的应用程序中帮助我???