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

java图片放大缩小

发布时间:2023-05-11 04:20:09

① 怎么用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图片查看器怎么让图片缩小放大呢

放大像素会失真,如果你要实现这一共能的话可以用JLabel来显示图片。有一个方法可以实现图片的缩放ImageIcon
ii
=
new
ImageIcon("img/item.jpg");
Image
img
=
ii.getImage();
img
=
img.getScaledInstance(100,
100,
Image.SCALE_DEFAULT);
ii
=
new
ImageIcon(img);这个例子的getScaledInstance方法可以生成一个新的Image对象,可以缩放成指定的大小。

③ 我写的java图片查看器怎么让图片缩小放大呢

放大像素会失真,如果你要实现这一共能的话可以用JLabel来显示图片。有一个版方法可以实现图片的缩放权ImageIcon ii = new ImageIcon("img/item.jpg");

Image img = ii.getImage();
img = img.getScaledInstance(100, 100, Image.SCALE_DEFAULT);
ii = new ImageIcon(img);这个例子的getScaledInstance方法可以生成一个新的Image对象,可以缩放成指定的大小。

④ 如何用Java实现图形的放大和缩小

java实现图形的放大和缩小,其实就是在画图时,改变图片的长和宽。以下代码参考一下:


importjava.awt.Graphics;
importjava.awt.MouseInfo;
importjava.awt.Point;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjava.io.File;

importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFileChooser;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.filechooser.FileNameExtensionFilter;

,ActionListener{

intx=0;
inty=0;
File[]selectedFiles=null;
intfileIndex=0;
intwidth=200;
intheight=200;

publicApp(){

setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400,300);
setResizable(false);
getContentPane().setLayout(null);

JPanelpanel=newImagePanel();
panel.setBounds(12,40,370,218);
getContentPane().add(panel);

addMouseListener(this);
JButtonbtnBrowse=newJButton("Browse");
btnBrowse.addActionListener(this);
btnBrowse.setBounds(12,9,91,21);
getContentPane().add(btnBrowse);
setVisible(true);
}

publicstaticvoidmain(String[]args){
newApp();
}

publicvoidactionPerformed(ActionEvente){
JFileChooserchooser=newJFileChooser();
chooser.setMultiSelectionEnabled(true);
FileNameExtensionFilterfilter=吵槐饥升返newFileNameExtensionFilter(
"JPG&GIFImages","jpg","gif");
//明世设置文件类型
chooser.setFileFilter(filter);
//打开选择器面板
intreturnVal=chooser.showOpenDialog(this);
if(returnVal==JFileChooser.APPROVE_OPTION){
selectedFiles=chooser.getSelectedFiles();
repaint();
}
}

publicvoidmouseClicked(MouseEvente){

}

publicvoidmouseEntered(MouseEvente){

}

publicvoidmouseExited(MouseEvente){

}

publicvoidmousePressed(MouseEvente){
Pointpoint=MouseInfo.getPointerInfo().getLocation();
x=point.x;
y=point.y;
}

publicvoidmouseReleased(MouseEvente){
Pointpoint=MouseInfo.getPointerInfo().getLocation();
intthisX=point.x;
intthisY=point.y;
System.out.println("thisX="+thisX+""+"thisY="+thisY);
if((y-thisY<20&&y-thisY>0)
||(y-thisY<0&&y-thisY>-20)){
//Y在20范围内移动认为是水平移动
if(x<thisX){
//right
if(selectedFiles!=null
&&fileIndex<selectedFiles.length-1){
fileIndex++;
}
}else{
//left
if(selectedFiles!=null&&fileIndex>0){
fileIndex--;
}
}
}else{
if(x<thisX){
//右下
width+=20;
height+=20;
}else{
//左上
width-=20;
height-=20;
}
}

repaint();
}

classImagePanelextendsJPanel{

publicvoidpaint(Graphicsg){
super.paint(g);

if(selectedFiles!=null){
ImageIconicon=newImageIcon(selectedFiles[fileIndex]
.getPath());
g.drawImage(icon.getImage(),0,0,width,height,this);
}
}
}
}

⑤ java 图片缩放代码

直接给你一个类,直接套用就好了

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;

import javax.imageio.ImageIO;

public class Resize {
BufferedImage bufImage;
int width;
int height;

public Resize() {
// TODO Auto-generated constructor stub
}

public Resize(String srcPath,int width,int height) {
this.width = width;
this.height = height;
try{
this.bufImage = ImageIO.read(new File(srcPath));
}catch(Exception e){
e.printStackTrace();
}
}

public static BufferedImage rize(BufferedImage srcBufImage,int width,int height){

BufferedImage bufTarget = null;

double sx = (double) width / srcBufImage.getWidth();
double sy = (double) height / srcBufImage.getHeight();

int type = srcBufImage.getType();
if(type == BufferedImage.TYPE_CUSTOM){
ColorModel cm = srcBufImage.getColorModel();
WritableRaster raster = cm.(width,
height);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
bufTarget = new BufferedImage(cm, raster, alphaPremultiplied, null);
}else
bufTarget = new BufferedImage(width, height, type);

Graphics2D g = bufTarget.createGraphics();
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.drawRenderedImage(srcBufImage, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return bufTarget;
}

}

⑥ 在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 图像处理问题 放大 缩小 Label

你所说的卜芦放大缩小是怎么样的?
比如
1.图片最开始是100*100,放大后,是150 * 150
2.图片最开始是100*100,放大后,JLABEL没有变化,还是 100 * 100 ,面图片变成了 150 *150,也就是说乱弊唯,图片是显示不哗培下了。

这两个方式中的那一个?

阅读全文

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

热点内容
android蓝牙传文件在哪里 浏览:354
苹果6s软解是真的吗 浏览:310
c语言代码量大 浏览:874
最新网络卫星导航如何使用 浏览:425
以下哪些文件属于图像文件 浏览:774
zycommentjs 浏览:414
确认全血细胞减少看哪些数据 浏览:265
文件有哪些要求 浏览:484
cad打开时会出现两个文件 浏览:65
什么是转基因网站 浏览:48
手柄设备有问题代码43 浏览:921
怎么他么怎么又网络了 浏览:649
java会出现内存泄露么 浏览:617
苹果4s锁屏后怎么还显示歌曲 浏览:207
鸿蒙系统文件管理哪些可以删除 浏览:550
ubuntuqt创建工程没有配置文件 浏览:126
网站登录变成其他网站怎么处理 浏览:202
ug数控编程学校有哪些 浏览:203
java图片上传显示 浏览:402
ppt的文件名后缀 浏览:902

友情链接