背景:原始图片宽高比例不能适应 新的页面需要,需要重新调整, 而目前除了使用 专业的图片工具之外, 也可以使用Java 自动处理,处理后的效果同 photoshop 几乎没有区别.
代码片段:
BufferedImage in = ImageIO.read(new URL(url));
//使用3字节图片编码
BufferedImage ut = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);// TYPE_4BYTE_BGR);
Graphics g = out.getGraphics();
//填白底
g.setColor(Color.white);
g.fillRect(0, 0, w, h);
int h1 = in.getHeight();
int w1 = in.getWidth();
float fh = ((float) h1) / h;
float fw = ((float) w1) / w;
int h = 0;
int w = 0;
if (fh > fw) {
int w2 = (int) (w1/fh);
ow = (w - w2)/2;
w = w2;
} else {
int h2 = (int) (h1/fw);
oh = (h - h2)/2;
h = h2;
}
//按比例缩/放原始图片
Image tmp = in.getScaledInstance(w, h, Image.SCALE_SMOOTH);
g.drawImage(tmp, ow, oh, w, h, null);
ImageIO.write(out, "jpg", new File(file));
分享到:
相关推荐
在数字图像处理中,水印通常被嵌入到图像的数据层中,不影响原始图像的观看,但在一定程度上可以防止未经授权的复制和使用。 要实现在Java中添加水印,我们可以利用开源的图像处理库,如Apache Commons Imaging...
4. 调整图片大小:为了使图片自适应PDF页面,可以使用`image.scaleToFit()`方法调整图片的大小,确保它不会超出页面范围。 ```java image.scaleToFit(document.getPageSize().getWidth(), document.getPageSize()....
在本示例中,我们讨论的主题是如何在RecyclerView中实现图片自适应高度的瀑布流布局。瀑布流布局,也称为Pinterest布局,是一种常见的图片展示方式,它的特点是每一列的图片高度不固定,根据图片内容自动调整,而列...
最后,实现图片自适应通常涉及到调整布局或使用适应屏幕尺寸的资源。在XML布局文件中,我们可以使用dp单位而不是px,这样在不同屏幕尺寸的设备上,图片的相对大小会保持一致。另外,对于不同的屏幕密度,我们可以...
在Java编程领域,图片处理是一项常见的任务,包括添加水印、改变图片大小等。这里我们将深入探讨这些知识点,以及如何在Struts2框架下实现它们。 首先,让我们了解"图片水印"。水印通常用于保护版权或者为图片增加...
在Java编程环境中,修改图片大小是一项常见的任务,尤其在处理图像数据或开发图形用户界面时。这个主题主要涉及Java的图像处理技术,包括使用Java AWT(Abstract Window Toolkit)和Swing库。以下是对这个话题的详细...
在Android 4.4(KitKat)版本中,开发者可能会发现之前用于处理WebView图片自适应的解决方案不再有效。本文将深入探讨这个问题,并提供有效的解决方案。 首先,让我们理解为什么在Android 4.4中,图片自适应可能会...
本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要理解Apache POI的工作原理。POI提供了一个名为HSSFPatriarch的类,它是Excel中的图形绘制容器,可以用于插入图片。对于....
在使用 Java POI 库生成 Word 文档时,有时我们需要对插入的图片进行格式调整,比如设置为上下型环绕,使其在文本中占据独立空间,同时可以调整图片的位置。在默认情况下,POI 会将图片设置为嵌入型,这可能导致图片...
在微信小程序开发中,"图片自适应"和"富文本解析"是两个非常重要的概念,它们对于提升用户体验和实现多样化内容展示具有关键作用。本文将深入探讨这两个知识点,并结合微信小程序模板的应用,来阐述如何有效地在小...
Java原有图片上加文字,对图片进行处理。
在IT行业中,图片处理是一项重要的任务,特别是在计算机视觉和图像分析的应用中。Java结合OpenCV库,能够有效地实现复杂的图像操作,比如图片对比和标记差异部分。本篇将深入探讨如何利用Java和OpenCV进行图片对比,...
在Adapter中,我们还需要处理图片的加载。这可以通过使用像Glide或Picasso这样的第三方库来实现,它们可以方便地从网络、资源或者文件系统加载图片,并且支持缓存和优化显示。例如,使用Glide加载图片的代码可能如下...
Java实现PDF模板指定位置插入图片 Java语言是当今最流行的编程语言之一,对于PDF文档的处理有着非常广泛的应用。本文将详细介绍如何使用Java语言在PDF模板的指定位置插入图片,实现对PDF文档的自定义和编辑。 ...
总结起来,使用Java和OpenCV进行图片对比及差异标记涉及到图像读取、像素级比较、阈值处理、颜色标记等多个环节。通过理解这些基本概念和技术,你可以创建自己的图像比较工具,适用于各种场景,例如监控系统中的异常...
在Java编程语言中,Swing库提供了一种强大的机制来创建图形用户界面(GUI),其中包括显示和处理图像。本示例中的"JAVA实现的图片大小随意拉动调整"着重讲解了如何利用Swing来实现图片的动态缩放功能,让用户可以...
在这个项目中,我们将深入探讨如何使用Java结合OpenCV库实现图像的灰度化、二值化、轮廓描边以及边缘检测等基本操作。这些功能在图像分析、识别和机器学习应用中扮演着重要角色。 首先,我们来看**灰度化**。灰度化...
在Java中实现这些算法,开发者可能需要编写自定义的图像处理函数,或者利用现有的开源库,如OpenCV for Java,它提供了丰富的图像处理API。开发过程中,需要注意性能优化,因为图像处理往往涉及到大量的计算。可以...
在图像处理中,每个像素通常由RGB(红绿蓝)三个通道组成,每个通道的值范围在0到255之间。二值化就是将这些像素值映射到0或255,从而创建出只有黑和白的图像。这个过程通常通过设定一个阈值来实现,如果像素值高于...
在Java编程环境中,将Word文档转换为HTML是一种常见的需求,特别是在数据处理、文档共享或网页展示等场景。本文将详细讲解如何使用Java实现这一功能,包括必要的库引用、代码示例以及转换过程。 首先,我们需要引入...