哪个是完成任务的最佳方式? 回答这些问题中的任何一个都会这样做 -
1)如何压缩图像而不会失去清晰度?
或
2)如何在我们的应用程序中以低分辨率启动相机?
我知道如何通过CameraIntent点击图像,或者通过应用程序中的图库选择图像,并将其上传到服务器。 但是,如果高像素密度的相机(我的13MP手机的相机点击3MB图像)点击图像可能太大,但我们无法上传。我需要的大小小于300KB,最好是大约150KB到200KB,而不会失去pic的清晰度。我们在Android中有这个库吗? 这些照片将是手写的文字。 由于这是不可能的,我已经尝试手动将相机的分辨率调低到2MP或VGA,即使那时图片也足够清晰。
或者,如果我们以低分辨率启动相机,那也可以。
答案 0 :(得分:3)
首先选择您的路径并致电功能
<img src="user_608.png" onerror="this.src='user_default.png';">
mImageNewPath是Comress图像的路径或压缩图像的新图像而不会失去质量
功能在不降低质量的情况下缩小尺寸
String mImageNewPath=compressImage(imageOldPath);
答案 1 :(得分:0)
使用以下功能将任意图像缩放到任意尺寸
public static BufferedImage getScaledImage(Image srcImg, int w, int h) {
BufferedImage resizedImg = new BufferedImage(w, h, Transparency.TRANSLUCENT);
Graphics2D g2 = resizedImg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(srcImg, 0, 0, w, h, null);
g2.dispose();
return resizedImg;
}
要调用该函数,请使用以下代码:
File file = new File(path);
image = ImageIO.read(file);
newImage = getScaledImage(image, int width, int height);
File outputfile = new File("background.png");
ImageIO.write(newImage, "png", outputfile);