导航:首页 > 编程语言 > java图片缩小图片

java图片缩小图片

发布时间:2025-05-01 14:17:49

『壹』 java如何修改图片大小

截取点代码片断,你自己看着改

修改图片大小用getScaledInstance方法

BufferedImagebimg=null;
Imageimg=null;
intwidth,height;
try{
bimg=ImageIO.read(u);
if(bimg.getWidth()>bimg.getHeight())
{
width=40;
height=bimg.getHeight()*width/bimg.getWidth();
}
else
{
height=40;
width=bimg.getWidth()*height/bimg.getHeight();
}

img=bimg.getScaledInstance(width,height,Image.SCALE_DEFAULT);
pre_image=bimg.getScaledInstance(width*10,height*10,Image.SCALE_DEFAULT);
}catch(IOExceptione){
e.printStackTrace();
}

『贰』 在java Applet里如何实现鼠标滚轮放大缩小图片

创建鼠标滚轮监听事件MouseWheelListener,MouseWheelEvent e,
int num=e.getWheelRotation(); 这个用来得到滚轮转动的方向与单位数,正数表示向下旋转,负数表示向上旋转,绝对值表示转动的单位。
然后你再改变图片的大小和位置,然后 refresh();
建议用JLabel来显示图片,然后在鼠标的滚轮事件中改变JLabel的大小和位置就OK了,具体的自己去实现。
看来得给你个例子啊!关键点1:按比例缩放图片;2:this.repaint();之前写错了不好意思啊
public class Anniu extends JFrame implements MouseWheelListener {

private static final long serialVersionUID = 1L;

JLabel jl = null;
ImageIcon image = new ImageIcon("F://12.jpg");
public Anniu() {

}

public void init() {
setLayout(null);

jl = new JLabel(image);
setSize(800, 600);
jl.setBounds(300, 200, 200, 200);
add(jl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseWheelListener(this);
setVisible(true);
}

@Override
public void mouseWheelMoved(MouseWheelEvent e) {
// TODO Auto-generated method stub
int num = e.getWheelRotation();
int x = (this.getWidth() - jl.getWidth()) / 2;
int y = (this.getHeight() - jl.getHeight()) / 2;
int width=jl.getWidth()+ 2 * num;
int height=jl.getHeight()+ 2 * num;
jl.setIcon(new ImageIcon( image.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH))); //重点1:按所给的大小来设置图片,不管图片有多大,总是全图显示,可能导致失真!你可以加一个大小限制,超过图片大小了则不再放大。
jl.setBounds(x + num, y + num, width, height);
this.repaint(); //刷新屏幕
}

『叁』 【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)

表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢?

一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏幕分辨率很高,而且截屏大小不好控制;同样分辨率在不同图片格式下,大小也相差很大。试了一下微信截图工具,输出的图片比较大。于是放弃了该办法。

另一个办法是通过其它工具来处理。找了图片在线压缩网站和一款手机软件,发现在图片小于一定大小时压缩无效。如果再继续找其它工具,简直就是折腾且浪费时间,所以也放弃了该办法。

最后,还是自己写个代码把图片按原比例压缩成了29KB,使用Thumbnailator库,两三行代码搞定。

缩略图是应用极其广泛的,像头像、图片消息、商品图片等,都会用到缩略图。

比如,当你有了一个新的微信好友,你就能看到他的头像,一开始这个头像是一个比原图更小的缩略图。而你点击查看原图时,微信客户端才会给你下载原图。因为你并不会对每个人的头像都感兴趣,都会去查看清晰的原图,一个小小的缩略图已经能满足了。这样可以减轻网络传输的负担,加快响应速度。

微信传图片和视频也是同样的道理,先给你传一个比较小的预览,你点击查看原图或视频播放才给你传更大的文件

缩略图的开源库很多:

(1)Thumbnailator

GitHub: https://github.com/coobird/thumbnailator

不依赖外部库,轻便高效,任何平台适用,支持缩放、旋转、截取,支持水印。

(2)Imgscalr

GitHub: https://github.com/rkalla/imgscalr

全部基于 Java 2D,不依赖外部库,轻便高效,任何平台适用,支持缩放、旋转、截取,不支持水印。

本文主要讲解Thumbnailator的使用,最新版本为0.4.8,maven引入如下:

原图为4:3比例的图片,为4032x3024(图片太大,网站无法上传原图),如下:

当使用指定大小方式进行缩放时,默认是保持原比例的。

展示其中两种结果:

(1)size(200, 300),结果为200X150的图片,比例还是4:3。

(2)forceSize(200, 300),结果为200X300的图片,如原比例不同,会有变形。

按比例进行缩放是指按宽和高的比例同时缩放,看下面代码:

按角度旋转时,角度为正数时,顺时针;角度为负数时,逆时针。代码如下:

压缩并旋转后的结果图片如下所示:

添加水印也是十分方便,我们示例将水印放在右上角,代码如下:

加上水印后的图片如下:

代码如下:

结果如下:

这个功能还是非常有用,可以操作目录下的所有图片,并指定文件名输出,如指定前缀,代码如下:

操作后的生成的结果如下:

Thumbnailator库操作方便,支持缩放、旋转、裁剪、水印等功能,而且没有其它依赖,值得了解学习。

欢迎关注公众号,将持续为你更新...

多读书,多分享;多写作,多整理。

『肆』 java怎么实现通过鼠标滚轮对图片进行等比例缩放功能

给你个实例吧
public class Anniu extends JFrame implements MouseWheelListener {

private static final long serialVersionUID = 1L;

JLabel jl = null;
ImageIcon image = new ImageIcon("F://12.jpg");
public Anniu() {

}

public void init() {
setLayout(null);

jl = new JLabel(image);
setSize(800, 600);
jl.setBounds(300, 200, 200, 200);
add(jl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseWheelListener(this);
setVisible(true);
}

@Override
public void mouseWheelMoved(MouseWheelEvent e) {
// TODO Auto-generated method stub
int num = e.getWheelRotation();
int x = (this.getWidth() - jl.getWidth()) / 2;
int y = (this.getHeight() - jl.getHeight()) / 2;
int width=jl.getWidth()+ 2 * num;
int height=jl.getHeight()+ 2 * num;
jl.setIcon(new ImageIcon( image.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH))); //重点1:按所给的大小来设置图片,不管图片有多大,总是全图显示,可能导致失真!你可以加一个大小限制,超过图片大小了则不再放大。
jl.setBounds(x + num, y + num, width, height);
this.repaint(); //刷新屏幕
}

『伍』 Java 图片压缩生成缩略图和水印

Java图片压缩生成缩略图和水印的方法如下

1. 使用Java原生API进行图片压缩: Java原生API提供了对图片进行缩放和压缩的功能。 可以使用javax.imageio包中的工具对图片进行等比缩放并压缩。 当输出图片格式为JPEG时,利用JPEGEncodeParam指定输出图片质量,通常建议的压缩平衡值在0.75或0.8左右,以在保证图片质量的同时减少文件体积。 JPEG格式通常比PNG格式更小,但PNG支持图片透明度,适用于需要透明背景的场景。

2. 使用Thumbnailator生成缩略图和添加水印: Thumbnailator是一个用于Java的缩略图生成库,提供了一套简单易用的API。 使用前需将Thumbnailator作为单独的Jar包引入项目,通常通过在pom.xml文件中添加依赖来完成。 Thumbnailator允许通过简单的API调用控制缩略图的尺寸、格式和位置。 同样地,使用Thumbnailator为图片添加水印也非常便捷,只需按照库提供的指南进行配置。

总结: Java原生API和第三方库如Thumbnailator都能有效满足图片压缩、生成缩略图和添加水印的需求。 在实际应用中,开发者可以根据具体需求选择合适的方法和技术,以实现高效、优化的图片管理。

『陆』 java设置插入图片大小

可以用Image中的getScaledInstance方法得到一个按照指定宽度和高度缩放以后的Image实例,然后再用setImage方法设置ImageIcon所显示的图像
一下示例:
×××××××××××××××××××××××××××××
import javax.swing.*;
import java.awt.*;

public class test extends JFrame
{
private ImageIcon img;
private JLabel showImg;

private final static int WIDTH=147;
private final static int HEIGHT=136;

public test()
{
img=new ImageIcon("1.png");
img.setImage(img.getImage().getScaledInstance(test.WIDTH,test.HEIGHT,Image.SCALE_DEFAULT));

showImg=new JLabel();
showImg.setIcon(img);

this.add(showImg,BorderLayout.CENTER);
this.setBounds(300,200,400,300);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

public static void main(String args[])
{
new test();
}
}

『柒』 怎么用java代码放大或缩小图片不失真。

放大图像不会导致失真,而缩小图像将不可避免的失真。Java中也同样是这样。但java提供了4个缩放的微调选项。image.SCALE_SMOOTH //平滑优先image.SCALE_FAST//速度优先image.SCALE_AREA_AVERAGING //区域均值image.SCALE_REPLICATE //像素复制型缩放image.SCALE_DEFAULT //默认缩放模式调用方法Image new_img=old_img.getScaledInstance(1024, 768, Image.SCALE_SMOOTH);得到一张缩放后的新图。怎么用java代码放大或缩小图片不失真。

阅读全文

与java图片缩小图片相关的资料

热点内容
淘宝javascript 浏览:62
3d打印机g代码 浏览:887
神州行自助升级4g 浏览:41
如何在设置查看app中描述文件 浏览:85
string取子串java 浏览:884
音乐网站怎么找 浏览:998
Note3wifidhcp配置文件 浏览:787
风险分析的程序包括 浏览:514
背书是什么意思网络 浏览:524
初中生作文安卓版 浏览:36
文件名有哪些部分构成 浏览:429
天天手环微信 浏览:166
垃圾清理系统文件 浏览:341
找寻电脑的文件不知道放哪个路径 浏览:472
java图片缩小图片 浏览:566
不做编程道通和元征哪个好 浏览:353
管线数据库更新方法有哪些 浏览:191
js全选和反选 浏览:874
机械设计和编程哪个难学 浏览:739
二不管转换成什么格式文件都会 浏览:889

友情链接