您好,我有一个QR码图像,我想调整它的大小,当我尝试使用此代码将其调整为小图像时,我总是得到模糊的图像,并且扫描时QR码不再有效,但是当我使用相同的代码将大小调整为大尺寸图像时,它可以正常工作:
public BufferedImage getScaledInstance(BufferedImage img,
int targetWidth,
int targetHeight,
Object hint,
boolean higherQuality)
{
int type = (img.getTransparency() == Transparency.OPAQUE) ?
BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;
BufferedImage ret = (BufferedImage)img;
int w, h;
if (higherQuality) {
// Use multi-step technique: start with original size, then
// scale down in multiple passes with drawImage()
// until the target size is reached
w = img.getWidth();
h = img.getHeight();
} else {
// Use one-step technique: scale directly from original
// size to target size with a single drawImage() call
w = targetWidth;
h = targetHeight;
}
do {
if (higherQuality && w > targetWidth) {
w /= 2;
if (w < targetWidth) {
w = targetWidth;
}
}
if (higherQuality && h > targetHeight) {
h /= 2;
if (h < targetHeight) {
h = targetHeight;
}
}
BufferedImage tmp = new BufferedImage(w, h, type);
Graphics2D g2 = tmp.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint);
// g2.setRenderingHint(RenderingHints.KEY_DITHERING, hint);
g2.drawImage(ret, 0, 0, w, h, null);
g2.dispose();
ret = tmp;
} while (w != targetWidth || h != targetHeight);
return ret;
}
有什么问题,我不清楚,请至少给我一个提示,谢谢。
我使用仿射变换来完成此任务,这是我的代码,希望对您有所帮助
/**
* scale image
*
* @param sbi image to scale
* @param imageType type of image
* @param dWidth width of destination image
* @param dHeight height of destination image
* @param fWidth x-factor for transformation / scaling
* @param fHeight y-factor for transformation / scaling
* @return scaled image
*/
public static BufferedImage scale(BufferedImage sbi, int imageType, int dWidth, int dHeight, double fWidth, double fHeight) {
BufferedImage dbi = null;
if(sbi != null) {
dbi = new BufferedImage(dWidth, dHeight, imageType);
Graphics2D g = dbi.createGraphics();
AffineTransform at = AffineTransform.getScaleInstance(fWidth, fHeight);
g.drawRenderedImage(sbi, at);
}
return dbi;
}
本文向大家介绍如何在PHP中调整图片大小?,包括了如何在PHP中调整图片大小?的使用技巧和注意事项,需要的朋友参考一下 可以使用ImageMagick或GD功能调整图像大小。如果使用了GD的功能,则在对原始数码相机的图像进行采样时,图像文件的大小也会减小。我们将在下面的代码中看到如何使用GD调整图像大小。
问题内容: 我正在使用 Swift 和Parse.com开发适用于iOS的应用程序 我试图让用户从图像选择器中选择一张图片,然后将所选图像的大小调整为200x200像素,然后再上传到我的后端。 Parse.com有一个用于Instagram复制应用程序的教程,名为“ AnyPic”,其中提供了用于调整图像大小的代码,但这是在Objective- C中。 如何在Swift中为所选图片创建200x20
问题内容: 我目前正在使用PIL在Tkinter中显示图像。我想临时调整这些图像的大小,以便可以更轻松地查看它们。我该怎么办? 片段: 问题答案: 这就是我所做的,并且效果很好… 你去了:) 编辑: 这是我的进口声明: 这是我改编自此示例的完整工作代码: 这是PhotoImage类文档:http ://www.pythonware.com/library/tkinter/introduction/
Photoshop 中的“图像大小”命令包含一种可以保留细节,并在放大图像时提供更优锐度的方法。未裁剪的原始图像(左图);调整大小后的锐化图像(右图) 此外,还更新了 Photoshop 的图像大小对话框以方便使用: 通过一个窗口显示调整参数的预览图像。 调整对话框的大小也将调整预览窗口的大小。 可从对话框右上角的齿轮菜单内启用和禁用“缩放样式”选项。 从“尺寸”弹出菜单中,选取其他度量单位显示最
我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。
本文向大家介绍如何在Java中调整数组大小?,包括了如何在Java中调整数组大小?的使用技巧和注意事项,需要的朋友参考一下 数组无法在Java中动态调整大小。 一种方法是使用java.util.ArrayList(或java.util.Vector)代替本机数组。 另一种方法是重新分配大小不同的数组,然后将旧数组的内容复制到新数组。 例: 输出: