新聞中心
怎么用java代碼放大或縮小圖片不失真。
放大圖像不會(huì)導(dǎo)致失真,而縮小圖像將不可避免的失真。
在恩施土家等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營(yíng)銷(xiāo)網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,恩施土家網(wǎng)站建設(shè)費(fèi)用合理。
Java中也同樣是這樣。
但java提供了4個(gè)縮放的微調(diào)選項(xiàng)。
image.SCALE_SMOOTH
//平滑優(yōu)先
image.SCALE_FAST//速度優(yōu)先
image.SCALE_AREA_AVERAGING
//區(qū)域均值
image.SCALE_REPLICATE
//像素復(fù)制型縮放
image.SCALE_DEFAULT
//默認(rèn)縮放模式
調(diào)用方法
Image
new_img=old_img.getScaledInstance(1024,
768,
Image.SCALE_SMOOTH);
得到一張縮放后的新圖。
java如何修改圖片大小
截取點(diǎn)代碼片斷,你自己看著改
修改圖片大小用getScaledInstance方法
BufferedImage?bimg?=?null;
Image?img?=?null;
int?width,?height;
try?{
bimg?=?ImageIO.read(u);
if(bimg.getWidth()??bimg.getHeight())
{
width?=?40;
height?=?bimg.getHeight()?*?width?/?bimg.getWidth();
}
else
{
height?=?40;
width?=?bimg.getWidth()?*?height?/?bimg.getHeight();
}
img?=?bimg.getScaledInstance(width,?height,?Image.SCALE_DEFAULT);
pre_image?=?bimg.getScaledInstance(width?*?10,?height?*?10,?Image.SCALE_DEFAULT);
}?catch?(IOException?e)?{
e.printStackTrace();
}
java設(shè)置插入圖片大小
可以用Image中的getScaledInstance方法得到一個(gè)按照指定寬度和高度縮放以后的Image實(shí)例,然后再用setImage方法設(shè)置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 通過(guò) 路徑 來(lái)調(diào)用已有圖片(或其他任何文件)的代碼怎么寫(xiě)?
Class.getResource("")??? 返回的是當(dāng)前Class這個(gè)類(lèi)所在包開(kāi)始的位置
舉例
URL?url?=?XXXX.class.getResource("");
System.out.println(url);
//輸出file:/D:/space/workspace/JDK8/bin/a/
所以a文件下的圖片?不需要寫(xiě)?/1.jpg??而直接寫(xiě)?1.jpg
URL?url?=?XXXX.class.getResource("1.jpg");
ImageIcon對(duì)象的構(gòu)造方法很多
比如寫(xiě)圖片路徑來(lái)構(gòu)造
相對(duì)路徑的寫(xiě)法
ImageIcon?icon?=?new?ImageIcon("src\\a\\50.png");
完整路徑,
ImageIcon?icon?=?new?ImageIcon("D:\\space\\workspace\\JDK8\\src\\a\\50.png");
使用完整路徑,可以加載電腦上的其他位置的圖片
比如??ImageIcon?icon?=?new?ImageIcon("c:\\50.png");
在圖片上右鍵單擊------選擇Properties-------彈出對(duì)話(huà)框里有Location信息
這個(gè)信息就是完整路徑
高分求java代碼,用來(lái)生成圖片文件??!
//defaultSuffix是jpg
public static final boolean resizeImage(String fileName, String suffix) throws Exception {
boolean uploaded = false;
BufferedImage input;
if(suffix.equalsIgnoreCase("tif")||suffix.equalsIgnoreCase("tiff")||suffix.equalsIgnoreCase("png")) {
RenderedImage image = JAI.create("fileload", TurbineServlet.getRealPath(imageRoot + fileName+"."+suffix));
WritableRaster raster = image.copyData(null);
BufferedImage bi = new BufferedImage( image.getColorModel(), raster, true, null);
BufferedImage bi2 = new BufferedImage( maxResizeDimension, bi.getHeight()*maxResizeDimension/bi.getWidth(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi2.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.setBackground(java.awt.Color.WHITE);//把tiff和png轉(zhuǎn)換后的背景設(shè)置為白色
g2.fillRect(0, 0, maxResizeDimension, bi.getHeight()*maxResizeDimension/bi.getWidth());
g2.drawImage(bi, 0, 0, maxResizeDimension, bi.getHeight()*maxResizeDimension/bi.getWidth(), null);
PlanarImage pi = PlanarImage.wrapRenderedImage(bi2);
JAI.create("FileStore", pi, TurbineServlet.getRealPath(resizeRoot + fileName+"."+defaultSuffix).replaceAll("\\\\","\\\\\\\\"), "JPEG", new JPEGEncodeParam());
input = pi.getAsBufferedImage();
int w = maxThumbDimension, h = maxThumbDimension;
BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = output.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(input,0,0,w,h, null);
ImageIO.write(output, defaultSuffix, new File(TurbineServlet.getRealPath(thumbRoot + fileName+"."+defaultSuffix)));
}
else {
input = ImageIO.read(new File(TurbineServlet.getRealPath(imageRoot + fileName+"."+suffix)));
int w = maxThumbDimension, h = maxThumbDimension;
BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = output.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(input,0,0,w,h, null);
ImageIO.write(output, defaultSuffix, new File(TurbineServlet.getRealPath(thumbRoot + fileName+"."+defaultSuffix)));
BufferedImage output2 = new BufferedImage(maxResizeDimension, input.getHeight()*maxResizeDimension/input.getWidth(), BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g2 = output2.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(input,0,0,maxResizeDimension, input.getHeight()*maxResizeDimension/input.getWidth(), null);
ImageIO.write(output2, defaultSuffix, new File(TurbineServlet.getRealPath(resizeRoot + fileName+"."+defaultSuffix)));
}
uploaded = true;
return uploaded;
}
標(biāo)題名稱(chēng):java調(diào)準(zhǔn)圖片代碼,java調(diào)整圖片大小
URL分享:http://www.dlmjj.cn/article/dsgdjdg.html