「java放大缩小」java 图像放大

博主:adminadmin 2023-03-20 21:26:08 549

今天给各位分享java放大缩小的知识,其中也会对java 图像放大进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

相册管理 java实现 功能是图片显示与图片放大缩小 急~~

上楼的我只想说你根本不懂java,这么简单的功能都不能实现,还是一门编程语言吗? 一、部分截图: ①打开 ②放大 ③翻转 ④缩小 二、源程序: import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.File;

public class PhotoFrame extends JFrame implements ActionListener{ Canvas photo;

JPanel p;

JButton open,bigger,smaller,rotate,exit;

JScrollPane sp;

JFileChooser fc;

int w = 150;

int h = 150;

Image image;

int rate = 10;//图片放缩率(单位:像素)

public PhotoFrame(){

init();

this.setTitle ("Java图片查看器");

this.setSize (600,500);

this.setLocationRelativeTo (this);//窗口居中

this.setVisible (true);

this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

}

public void init(){

photo = new Photo();

sp = new JScrollPane(photo);

p = new JPanel();

open = new JButton("open");

bigger = new JButton(" + ");

smaller = new JButton(" - ");

rotate = new JButton(" の ");

exit = new JButton("exit");

//设置前景色

open.setForeground (Color.BLUE);

bigger.setForeground (Color.GREEN);

smaller.setForeground (Color.GREEN);

rotate.setForeground (Color.GREEN);

exit.setForeground (Color.RED);

//设置提示文本

open.setToolTipText ("打开文件");

bigger.setToolTipText ("放大");

smaller.setToolTipText ("缩小");

rotate.setToolTipText ("翻转");

exit.setToolTipText ("退出程序");

//设置边框

p.setBorder (BorderFactory.createEtchedBorder ());

p.add (open);

p.add (bigger);

p.add (smaller);

p.add (rotate);

p.add (exit);

add(sp,BorderLayout.CENTER);

add(p,BorderLayout.SOUTH);

open.addActionListener (this);

bigger.addActionListener (this);

smaller.addActionListener (this);

rotate.addActionListener (this);

exit.addActionListener (this);

}

public static void main(String[] args){

new PhotoFrame();

} public void actionPerformed (ActionEvent e){

if(e.getSource ()==open){//打开

fc = new JFileChooser();

int returnval = fc.showOpenDialog(this);

if(returnval == JFileChooser.APPROVE_OPTION){

File f = fc.getSelectedFile ();

String fileName = f.getName ();

String filePath=fc.getSelectedFile().getAbsolutePath();

System.out.println(filePath);

this.setTitle (fileName+"-Java图片查看器");

//通过文件路径获得图片

image = new ImageIcon(filePath).getImage ();

//获取图片的宽和高

w = image.getWidth (this);

h = image.getHeight (this);

}

}else if(e.getSource ()==bigger){//放大

if(w0) w+= rate;

else w-= rate;

if(h0)h+= rate;

else h-= rate;

}else if(e.getSource ()==smaller){//缩小

if(w0) w-= rate;

else w+= rate;

if(h0) h-= rate;

else h+= rate;

}else if(e.getSource ()==rotate){//翻转

if(w0h0){

h*=-1;

}else if(w0h0){

w*=-1;

}else if(w0h0){

h*=-1;

}else if(w0h0){

w*=-1;

}

}else{//退出

System.exit(0);

}

photo.repaint ();//重新绘制

}

class Photo extends Canvas{

public void paint(Graphics g){

int width = this.getWidth();

int height = this.getHeight();

//设置图片左上角坐标

int x = (width-w)/2;

int y = (height-h)/2;

//绘制图片

g.drawImage(image, x, y, w, h,this);

}

}

}

三、补充:1、滚动面板功能没有具体实现2、放大缩小率应该按照图片宽高比来设置,最好用一个滚动条来放大缩小3、翻转功能需要改进 楼主自己试着完善下...

如何用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代码放大或缩小图片不失真。

放大图像不会导致失真,而缩小图像将不可避免的失真。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放大缩小的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 图像放大、java放大缩小的信息别忘了在本站进行查找喔。