重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java图片代码放大 html5图片放大代码

怎么用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如何实现图片拖动,放大缩小,旋转。

这个只是实现了移动,你参考以下吧 !

public class MoveImage {

static int x,y;

private static int num=0;

private static Icon icon=null;

public static void main(String[] args) throws Exception{

JFrame f = new JFrame();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.getContentPane().setLayout(null);//这个要设置成 null

//图片

icon = new ImageIcon("d:/test.gif");//d:/test.gif本地一张图片

JLabel l = new JLabel(icon); //创建具有指定图像的 JLabel 实例。

l.setSize(icon.getIconWidth(),icon.getIconHeight());//设置面板的宽度和高度

l.setBorder(BorderFactory.createLineBorder(Color.red));//给图片加上红色外框

f.getContentPane().add(l);

f.setSize(900,700);

f.setVisible(true);

l.addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e){

x=e.getX();

y=e.getY();

}

});

l.addMouseMotionListener(new MouseMotionListener(){

public void mouseDragged(MouseEvent e) {

JLabel l = (JLabel)e.getSource();

l.setLocation(l.getX()+e.getX()-x,l.getY()+e.getY()-y);

}

public void mouseMoved(MouseEvent e) {}

});

}

我写的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小程序图片查看器代码,实现放大、缩小、旋转功能

我只实现了放大缩小功能,旋转还有点问题package com.lzw;import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.net.URL;import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JSlider;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

/*

* @功能:实现图片的放大缩小与旋转功能

* @日期:2011.6.29

*/

public class OperationOnPic extends JFrame{

private JPanel imageJpanel;

private JPanel southJpanel;

private JButton rorateButton;

private Mycanvas canvas ;

private int imgWidth, imgHeight;

private JSlider jSlide; //滑动块组建

// private JScrollPane jScrollPane ;

Image img;

private static int num=0;

private static int newWidth=0;

private static int newHeigth=0;

public static boolean isroate=false;

public OperationOnPic(){

setTitle("图片操作");

//设置窗体大小

setSize(800, 600);

//设置窗体显示在中央位置

setLocationRelativeTo(null);

//URL imgUrl = OperationOnPic.class.getResource("2.jpg"); //获得图片路径

//img = Toolkit.getDefaultToolkit().getImage(imgUrl);// 获取图片资源

ImageIcon image=new ImageIcon(OperationOnPic.class.getResource("2.jpg"));

img=image.getImage();

canvas=new Mycanvas();

//调用布局方法

init();

//设置窗体可见

setVisible(true);

}

public void init(){

setDefaultCloseOperation(this.EXIT_ON_CLOSE); //设置窗体可关闭

imageJpanel=new JPanel();

southJpanel=new JPanel();

imageJpanel.setLayout(new BorderLayout());

imageJpanel.add(canvas,BorderLayout.CENTER);

imageJpanel.add(getJSlider(),BorderLayout.SOUTH);

rorateButton=new JButton("图片旋转");

rorateButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

num+=5;

isroate=true;

canvas.repaint();

isroate=false;

}

});

southJpanel.add(rorateButton); //将按钮添加到面板上

this.getContentPane().add(imageJpanel,BorderLayout.CENTER);

this.getContentPane().add(southJpanel,BorderLayout.SOUTH);

}

public JSlider getJSlider(){

if(jSlide==null){

jSlide=new JSlider(); //实例化一个滑动块对象

jSlide.setMaximum(500); //设置滑动块的最大取值

jSlide.setMinimum(1); //设置滑动块的最小取值

jSlide.setValue(50); //设置滑动块当前值

jSlide.addChangeListener(new ChangeListener(){ public void stateChanged(ChangeEvent e) {

// TODO Auto-generated method stub

canvas.repaint(); //重新绘制图像

}

});

}

return jSlide;

}

public static void main(String[] args) {

new OperationOnPic();

}

class Mycanvas extends Canvas{

public void paint(final Graphics g){ //重写paint

if(isroate==false){

imgWidth=img.getWidth(this);

imgHeight=img.getHeight(this);

float value=jSlide.getValue(); //取得滑动块的值

newWidth=(int)(imgWidth*value/100);

newHeigth=(int)(imgHeight*value/100);

g.drawImage(img,0,0,newWidth,newHeigth,this);

g.dispose();

}else{

num+=5;

Graphics2D g2=(Graphics2D)g;

g2.rotate(Math.toRadians(num));

g2.drawImage(img,0,0,400,400,this);

g.dispose();

}

}

}

鼠标经过的地方,java图片局部放大代码

没有代码,准备一个隐藏的 JInternalFrame,当鼠标移到一个图片缩略图时,我们通过 JAI (Java Advanced Image, Oracle 网站有下载的 jar) 来把图片缩放成一个 BufferedImage,然后再 myInternalFrame.getMyPreviewPanel().setImageIcon(myBufferedImage); 替换 JInternalFrame 中的 myPreviewPanel 的图标,再把 JInternalFrame 显示到前面来,并给它一个鼠标事件,当鼠标移出这个窗体或鼠标单击时把 JInternalFrame 隐藏回到原来的缩略图列表中。

下面是我预览产品图片时的代码,类似的方法做成的,先缩放在内存中得到一张 BufferedImage 图片,再放到 Preview 预览框中显示出来。你这个局部放大的话,就是把原来的图片通过 JAI 剪切出一个方形再来放大,应该在 JAI 中也有这个吧,不过我没找过,你在它的 API 文档中找方法列出,应该有的。

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

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

import java.awt.Graphics;

import java.awt.MouseInfo;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.File;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.filechooser.FileNameExtensionFilter;

public class App extends JFrame implements MouseListener, ActionListener {

int x = 0;

int y = 0;

File[] selectedFiles = null;

int fileIndex = 0;

int width = 200;

int height = 200;

public App() {

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLocationRelativeTo(null);

setSize(400, 300);

setResizable(false);

getContentPane().setLayout(null);

JPanel panel = new ImagePanel();

panel.setBounds(12, 40, 370, 218);

getContentPane().add(panel);

addMouseListener(this);

JButton btnBrowse = new JButton("Browse");

btnBrowse.addActionListener(this);

btnBrowse.setBounds(12, 9, 91, 21);

getContentPane().add(btnBrowse);

setVisible(true);

}

public static void main(String[] args) {

new App();

}

public void actionPerformed(ActionEvent e) {

JFileChooser chooser = new JFileChooser();

chooser.setMultiSelectionEnabled(true);

FileNameExtensionFilter filter = new FileNameExtensionFilter(

"JPG  GIF Images", "jpg", "gif");

// 设置文件类型

chooser.setFileFilter(filter);

// 打开选择器面板

int returnVal = chooser.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {

selectedFiles = chooser.getSelectedFiles();

repaint();

}

}

public void mouseClicked(MouseEvent e) {

}

public void mouseEntered(MouseEvent e) {

}

public void mouseExited(MouseEvent e) {

}

public void mousePressed(MouseEvent e) {

Point point = MouseInfo.getPointerInfo().getLocation();

x = point.x;

y = point.y;

}

public void mouseReleased(MouseEvent e) {

Point point = MouseInfo.getPointerInfo().getLocation();

int thisX = point.x;

int thisY = 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();

}

class ImagePanel extends JPanel {

public void paint(Graphics g) {

super.paint(g);

if (selectedFiles != null) {

ImageIcon icon = new ImageIcon(selectedFiles[fileIndex]

.getPath());

g.drawImage(icon.getImage(), 0, 0, width, height, this);

}

}

}

}


名称栏目:java图片代码放大 html5图片放大代码
标题网址:http://cqcxhl.cn/article/hhpeho.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP