/**
* change image's width and height
*
* @param origin
* source image's path
* @param dest
* target image's path
* @param width
* expected width
* @param height
* expected height
* @return true:success || false:failed
*/
public static boolean resizeImg(String origin, String dest, int width, int height) {
try {
BufferedImage img = ImageIO.read(new File(origin));
// origin width and height
int imgWidth = img.getWidth();
int imgHeight = img.getHeight();
// check width and height
if (imgWidth > width || imgHeight > height) {
float widthRate = (float)imgWidth / (float)width;
float heightRate = (float)imgHeight / (float)height;
float rate = widthRate > heightRate ? widthRate : heightRate;
rewriteImg(origin, dest, 0, 0, (int)(imgWidth / rate), (int)(imgHeight / rate), BufferedImage.TYPE_INT_RGB);
}
return true;
} catch (Exception e) {
return false;
}
}
public static boolean rewriteImg(String origin, String dest, int x, int y,
int width, int height, Integer scaleType) {
try {
// img's suffix
String suffix = origin.substring(origin.lastIndexOf(".") + 1);
// source image
Image image = ImageIO.read(new File(origin));
// get target
BufferedImage tag = new BufferedImage(width, height, scaleType);
Graphics g = tag.getGraphics();
g.drawImage(image, x, y, width, height, null);
g.dispose();
// Graphics to ByteArrayOutputStream
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(tag, suffix, bos);
// write file
FileOutputStream fos = new FileOutputStream(dest);
fos.write(bos.toByteArray());
fos.flush();
fos.close();
return true;
} catch (Exception e) {
return false;
}
}
分享到:
相关推荐
长宽比转换就是改变图像的宽度和高度比例,而保持其内容的视觉完整性。这涉及到像素的重采样,可能包括插值、缩减或扩展等操作。为了实现高质量的长宽比转换,需要考虑图像细节的保留、边缘处理以及避免失真等问题。...
给定一个长宽比为4:3的图像,如果它具有1600万个像素,那么可以通过以下方式计算分辨率: \[ \text{分辨率} = \sqrt{\frac{\text{总像素数}}{\text{长宽比}}} = \sqrt{\frac{16000000}{4/3}} = \sqrt{3464100} \...
例如,在设计一个需要自适应图像大小的网页或桌面应用程序时,可以根据窗口尺寸动态改变图像框的大小,通过设置Stretch属性来实现图像的缩放。 在VB中,你可以通过以下步骤设置图像框的Stretch属性: 1. 首先,在...
此外,它可能还具备保持原图宽高比的选项,以防止图片变形。在处理过程中,工具可能会提供两种模式:等比例缩放和强制缩放。等比例缩放会保持原始图像的长宽比例,而强制缩放则会改变长宽比例,可能导致图像失真。 ...
在图像处理领域,平移、缩放和旋转是基本的操作,它们经常被用来改变图像的位置、大小和方向。本文将深入探讨这些概念以及如何通过编程实现这些操作。 首先,我们来理解平移(Translation)。平移是将图像在二维...
在数字图像处理中,缩放是指改变图像的尺寸,通常以保持图像的长宽比,可以放大或缩小图像。图像缩放有两种基本类型:线性插值和非线性插值。在LabVIEW中,我们主要关注线性插值,因为它是最常见且计算效率较高的...
这样的缩放不会改变图像的比例,保持其原有的长宽比,避免图像变形。在MATLAB中,只需调整`imresize`函数的第二个参数即可实现。 四、动画制作 `bilinear_zoom.m`脚本可能包含了创建缩放动画的代码。在MATLAB中,...
当我们按比例调整图片大小时,要保持原有的长宽比,防止图像变形。这可以通过计算两个维度的比例因子,然后分别应用于宽度和高度来实现。如果需要保持文件大小不变,同时改变画质,可以调整图像的位深度或使用不同的...
8. **图像尺寸调整**:图像2的改变是由于图像大小的调整,改变了图像的尺寸,而不是画布大小、分辨率或像素长宽比。 9. **扭曲效果**:图像2的选区扭曲可能是切变扭曲的效果,它允许沿着特定路径扭曲图像。 10. **...
2.RGB颜色空间和HSV颜色空间的转换 当改变RGB值,会得到相应的HSV值,并进行显示,反之亦然。 3.取色功能 取色功能包含“面板取色”和“屏幕取色”。面板取色就是用户可以在颜色面板中单击鼠标左键,...
图像缩放是改变图像大小的过程,分为等比例缩放和非等比例缩放。等比例缩放保持图像长宽比不变,而非等比例缩放可能导致图像变形。C#中可以使用插值算法,如最近邻插值或双线性插值,来计算新尺寸下每个像素的值。...
2. **调整大小**:在“图像”>“图像大小”对话框中,可以直接输入像素值改变图像大小,如将图像调整为600×400像素。 3. **转换文件格式**:保存图像时,选择“文件”>“存储为”,在“保存为类型”下拉菜单中选择...
如果必须改变长宽比,可以考虑裁剪图像来适应新的尺寸。 4. **压缩算法**:图片编辑器在缩小图片尺寸的同时,可能会使用压缩算法来减少文件大小。JPEG使用有损压缩,会丢失部分数据;PNG使用无损压缩,但压缩效果...
1. **调整图像大小**:通过“图像”>“图像大小”菜单,可以整体改变图像的尺寸。如果保留原始比例,可以保持图像的长宽比不变。 2. **对象大小变化**:选择图层和对象,使用“编辑”>“自由变换”进行精确调整。 3....
`UIImage`是苹果提供的一个用于存储和操作图像的类,它包含了加载、显示和处理图片的各种方法。例如,我们可以使用`init(named:)`初始化一个`UIImage`对象,通过指定图片的名字来加载图片资源。 调整图片大小通常...
2. 自定义设置:在Photoshop CS中,用户可以自定义颜色工作空间、色彩管理方案和快捷键,但像素的长宽比例是固定的,不能自定义。 3. Web图像格式:JPEG适合于丰富的色彩图像,如照片;JPEG和GIF都是压缩文件格式,...
这些步骤可以得到边缘轮廓平滑的熔池图像,从而计算出熔池面积和长宽比等特征参数。 4. 熔池图像特征分析: 熔池图像具有不规则半椭圆形的特点,其形状受到焊枪倾角变化的影响。文中通过试验,使用不同倾角的熔池...
例如,叶片的凸包面积可以反映叶片的展开程度,长轴与短轴的比值则可以间接反映叶片的长宽比,这些都是判断茶叶等级的重要依据。通过精确测量这些形态特征,可以更准确地筛选出符合名优绿茶品质要求的鲜叶,进而提高...
- 使用选框工具时,工具属性栏提供了各种选项,如添加/合并/减去/交集操作按钮,羽化值设定(用于柔化选区边缘),以及样式选择(正常、固定长宽比、固定大小)。 2. **编辑图像选区**: - 编辑选区包括移动、...