導航:首頁 > 編程語言 > java改變圖片大小的思路

java改變圖片大小的思路

發布時間:2021-03-09 17:46:27

⑴ 求一個用BufferedImage這個改變圖片大小的java代碼!~!

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

import javax.imageio.ImageIO;

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

public class ImageZipUtil {

/**
* 壓縮圖片文件<br>
* 先保存原文件,再壓縮、上傳
*
* @ oldFile
* 要進行壓縮的文件全路徑
* @param width
* 寬度
* @param height
* 高度
* @param quality
* 質量
* @param smallIcon
* 小圖片的後綴
* @return 返回壓縮後的文件的全路徑
*/
public String zipImageFile(String oldFile, int width, int height,
float quality, String smallIcon) {
if (oldFile == null) {
return null;
}
String newImage = null;
try {
/** 對伺服器上的臨時文件進行處理 */
Image srcFile = ImageIO.read(new File(oldFile));
int w = srcFile.getWidth(null);
System.out.println(w);

System.out.println(smallIcon);
System.out.println(smallIcon);
int h = srcFile.getHeight(null);
System.out.println(h);
//width = w/4;
//height = h/4;

/** 寬,高設定 */
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);
String filePrex = oldFile.substring(0, oldFile.indexOf('.'));
/** 壓縮後的文件名 */
newImage = filePrex + smallIcon
+ oldFile.substring(filePrex.length());

/** 壓縮之後臨時存放位置 */
FileOutputStream out = new FileOutputStream(newImage);

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
/** 壓縮質量 */
jep.setQuality(quality, true);
encoder.encode(tag, jep);
out.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return newImage;
}

/**
* 保存文件到伺服器臨時路徑
*
* @param fileName
* @param is
* @return 文件全路徑
*/
public String writeFile(String fileName, InputStream is) {
if (fileName == null || fileName.trim().length() == 0) {
return null;
}
try {
/** 首先保存到臨時文件 */
FileOutputStream fos = new FileOutputStream(fileName);
byte[] readBytes = new byte[512];// 緩沖大小
int readed = 0;
while ((readed = is.read(readBytes)) > 0) {
fos.write(readBytes, 0, readed);
}
fos.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
public static void main(String[] args){
ImageZipUtil u = new ImageZipUtil();
u.zipImageFile("e:/SAM_0006.JPG", 128, 128, 1f, "x2");

}
}

⑵ 在java中如何利用事件實現圖片大小的改變

應該是滿足了吧
import java.awt.*;
import java.applet.*;
import java.net.URL;
import java.awt.image.ImageProcer;

public class AppletTest extends Applet {
private Image i;

String urlString = "http://www..com/img/logo.gif"; // 圖片地址

Button b1 = new Button("zoom In");
Button b2 = new Button("zoom Out");

int a = 80;
int b = 80;

public void init() {
try {
URL url = new URL(urlString);
i = this.createImage((ImageProcer) url.getContent());

add(b1);
add(b2);
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean action(Event evt, Object arg) {
if(evt.target.equals(b1))
zoomIn();
else if(evt.target.equals(b2))
zoomOut();
// Let the base class handle it:
else
return super.action(evt, arg);
return true; // We've handled it here
}
public void zoomIn(){
a += 10;
b += 10;
repaint();
}
public void zoomOut(){
a -= 10;
b -= 10;
repaint();
}

public void paint(Graphics g) {
g.drawImage(i, 20, 40, a, b, this);
}
}

⑶ java 用這個方法如何設置圖片大小

看你想按圖片的實際大小、還是按當前組件(ballgame)的大小。

按實際大小

g.drawImage(sun, sun.getWidth(), sun.getHeight(),null);

組件大小

g.drawImage(sun, getWidth(), getHeight(),null);

⑷ 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 swing中如何改變圖片大小,如下圖

你首先要確認一下面板的布局方式。
你沒有加圖片時,已經將label的圖標設置為了圖片,也沒有設置標簽的大小,所以在添加標簽到面板時,就會站整個面板,所以可以看到圖片。
當你加上時,icon直接加到面板,這種方式我沒嘗試過,可能會影響左上角的圖標,也可能像你這種情況看不到。建議使用java.awt.image;而不用用imageicon

⑹ JAVA 圖片大小設置

應該是路徑問題。
把你要顯示的圖片放在你的Test類里,
再把 :con = new ImageIcon("D:\\java程序回\\1.jpg");
改成 : icon = new ImageIcon("./1.jpg");
你試試,看行不答。

⑺ java怎麼設置插入圖片大小

用抄Image中的getScaledInstance方法得到一個按照指定寬度和高度縮放以後的Image實例,然後再用setImage方法設置ImageIcon所顯示的圖像。

⑻ java程序中如何設置圖片大小

用Image中的tance方法得到一個按照指定寬度和高度縮放以後的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改變圖片大小,該怎麼處理

/**
* 圖片縮放
*
* @param image 源圖像對象。
* @param xscale 圖像 x 軸(寬度)上的的縮放比例。
* @param yscale 圖像 y 軸(高度)上的的縮放比例。
* @return 縮放後的圖像對象。
*/
public static BufferedImage zoomImage(BufferedImage image, double xscale, double yscale) {
int width = (int) ((double) image.getWidth() * xscale);
int height = (int) ((double) image.getHeight() * yscale);
AreaAveragingScaleFilter areaAveragingScaleFilter = new AreaAveragingScaleFilter(width, height);
FilteredImageSource filteredImageSource = new FilteredImageSource(image.getSource(), areaAveragingScaleFilter);
BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = result.getGraphics();
Canvas canvas = new Canvas();
g.drawImage(canvas.createImage(filteredImageSource), 0, 0, null);
return result;
}

閱讀全文

與java改變圖片大小的思路相關的資料

熱點內容
網路中常用的傳輸介質 瀏覽:518
文件如何使用 瀏覽:322
同步推密碼找回 瀏覽:865
樂高怎麼才能用電腦編程序 瀏覽:65
本機qq文件為什麼找不到 瀏覽:264
安卓qq空間免升級 瀏覽:490
linux如何刪除模塊驅動程序 瀏覽:193
at89c51c程序 瀏覽:329
怎麼創建word大綱文件 瀏覽:622
裊裊朗誦文件生成器 瀏覽:626
1054件文件是多少gb 瀏覽:371
高州禁養區內能養豬多少頭的文件 瀏覽:927
win8ico文件 瀏覽:949
仁和數控怎麼編程 瀏覽:381
項目文件夾圖片 瀏覽:87
怎麼在東芝電視安裝app 瀏覽:954
plc顯示數字怎麼編程 瀏覽:439
如何辨別假網站 瀏覽:711
寬頻用別人的賬號密碼 瀏覽:556
新app如何佔有市場 瀏覽:42

友情鏈接