『壹』 java圖片縮放

根據你的滑鼠移動事件,判斷你第一次點擊的點和最後一次的點,就可以算出這個句型區域的長和寬了,
下面代碼自己看

package com.itheima.util;

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**
* 製作圖片縮略圖
*
* @author seawind
*
*/
public class PicUtils {
private String srcFile;
private String destFile;
private int width;
private int height;
private Image img;

/**
* 構造函數
*
* @param fileName
* String
* @throws IOException
*/
public PicUtils(String fileName) throws IOException {
File _file = new File(fileName); // 讀入文件
this.srcFile = fileName;
// 查找最後一個.
int index = this.srcFile.lastIndexOf(".");
String ext = this.srcFile.substring(index);
this.destFile = this.srcFile.substring(0, index) + "_s" + ext;
img = javax.imageio.ImageIO.read(_file); // 構造Image對象
width = img.getWidth(null); // 得到源圖寬
height = img.getHeight(null); // 得到源圖長
}

/**
* 強制壓縮/放大圖片到固定的大小
*
* @param w
* int 新寬度
* @param h
* int 新高度
* @throws IOException
*/
public void resize(int w, int h) throws IOException {
BufferedImage _image = new BufferedImage(w, h,
BufferedImage.TYPE_INT_RGB);
_image.getGraphics().drawImage(img, 0, 0, w, h, null); // 繪制縮小後的圖
FileOutputStream out = new FileOutputStream(destFile); // 輸出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(_image); // 近JPEG編碼
out.close();
}

/**
* 按照固定的比例縮放圖片
*
* @param t
* double 比例
* @throws IOException
*/
public void resize(double t) throws IOException {
int w = (int) (width * t);
int h = (int) (height * t);
resize(w, h);
}

/**
* 以寬度為基準,等比例放縮圖片
*
* @param w
* int 新寬度
* @throws IOException
*/
public void resizeByWidth(int w) throws IOException {
int h = (int) (height * w / width);
resize(w, h);
}

/**
* 以高度為基準,等比例縮放圖片
*
* @param h
* int 新高度
* @throws IOException
*/
public void resizeByHeight(int h) throws IOException {
int w = (int) (width * h / height);
resize(w, h);
}

/**
* 按照最大高度限制,生成最大的等比例縮略圖
*
* @param w
* int 最大寬度
* @param h
* int 最大高度
* @throws IOException
*/
public void resizeFix(int w, int h) throws IOException {
if (width / height > w / h) {
resizeByWidth(w);
} else {
resizeByHeight(h);
}
}

/**
* 設置目標文件名 setDestFile
*
* @param fileName
* String 文件名字元串
*/
public void setDestFile(String fileName) throws Exception {
if (!fileName.endsWith(".jpg")) {
throw new Exception("Dest File Must end with \".jpg\".");
}
destFile = fileName;
}

/**
* 獲取目標文件名 getDestFile
*/
public String getDestFile() {
return destFile;
}

/**
* 獲取圖片原始寬度 getSrcWidth
*/
public int getSrcWidth() {
return width;
}

/**
* 獲取圖片原始高度 getSrcHeight
*/
public int getSrcHeight() {
return height;
}
}

『貳』 Java 按比例縮小圖片應該怎麼實現

public Image resizeImg(Image img, int newWidth, int newHeight) {
int imgW = img.getWidth();
int imgH = img.getHeight();
int[] srcPixels = new int[imgW * imgH];
int[] destPixels = new int[newWidth * newHeight];
img.getRGB(srcPixels, 0, imgW, 0, 0, imgW, imgH);
int srcX;
int srcY;
for (int y = 0; y < newHeight; ++y) {
for (int x = 0; x < newWidth; ++x) {
srcX = (x * imgW) / newWidth;
srcY = (y * imgH) / newHeight;
destPixels[x + y * newWidth] = srcPixels[srcX + srcY * imgW];
}
}
return Image.createRGBImage(destPixels, newWidth, newHeight, true);
}

『叄』 如何用Java實現圖形的放大和縮小

要用Java實現圖形的放大和縮小,可以使用以下代碼:

import java.awt.*;import java.awt.event.*;import javax.swing.*;//實現矩形在規定時間間隔里循環放大縮小;

public class Test02 extends JFrame implements Runnable{static int w = 0,h = 0;//w:矩形寬度,h:矩形高度 ;

boolean flag = false;//false:放大,true:縮小public Test02(){this.setSize (500,500);this.setVisible (true);this.setTitle (w+","+h);this.setLocationRelativeTo (this);this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);}public void paint(Graphics g){int width = getWidth();

//窗口寬度int height = getWidth();//窗口高度g.setColor (Color.WHITE);//設置畫筆顏色g.fillRect (0,0,width,height); //填充窗口int x = (width-w)/2;//x:矩形左上角橫坐標int y = (height-h)/2;//y:矩形左上角縱坐標g.setColor (Color.BLUE);//同上...g.drawRect (x,y,w,h);

//畫矩形,實心矩形為fillRect(....)g.setColor (Color.RED);//同上...g.drawOval (x,y,w,h); //畫橢圓setTitle (w+","+h); //以矩形寬和高來設置窗口標題}public void setSize(){float n = getWidth()/getWidth();if(w==0||h==0)flag = false;

if(w==getWidth()||h==getWidth())flag = true;if(!flag){w+=1;h+=n;}if(flag){w-=1;h-=n;}}public void run(){while(true){try{Thread.sleep (5);//間隔}catch(InterruptedException ie){}setSize();repaint();}}public static void main(String[] args){Test02 t = new Test02();Thread th = new Thread(t);th.start();}}

『肆』 如何用Java實現圖形的放大和縮小

放大縮小,
就是改變你畫圖時,圖片的長寬

http://..com/question/361953832.html?oldq=1

這是我回答別人問題時寫的代碼,你看一下。