真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java圖片比例縮小代碼,java實(shí)現(xiàn)圖片放大和縮小代碼

用java處理圖片,使圖片像素和長寬成比例變小,請(qǐng)各位高手幫忙解決一下,急

90 * 90的圖片

目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、道里網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

應(yīng)該是分成9個(gè)10 * 10的吧

static Image createImage(Image image, int x, int y, int width, int height, int transform)

Image類里面自帶方法創(chuàng)建分割圖片

可以這樣創(chuàng)建:

Image imgBase = Image.createImage("/*.png");

Image img[] = new Image[9];

for(int i = 0; i 9; i++)

{

img[i] = Image.createImage(imgBase, (i % 3) * 10, (i / 3) * 10, 10, 10, Sprite.TRANS_NONE); //參數(shù)分別是:源圖片,截取的X坐標(biāo),Y坐標(biāo),寬,高,翻轉(zhuǎn)類型

}

這樣就可以了

當(dāng)然以上代碼需要放在try里面

如果想分成其他的小圖片,可以按照需要變動(dòng)坐標(biāo)和寬高等參數(shù)

java圖片縮放

根據(jù)你的鼠標(biāo)移動(dòng)事件,判斷你第一次點(diǎn)擊的點(diǎn)和最后一次的點(diǎn),就可以算出這個(gè)句型區(qū)域的長和寬了,

下面代碼自己看

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;

/**

* 構(gòu)造函數(shù)

*

* @param fileName

* String

* @throws IOException

*/

public PicUtils(String fileName) throws IOException {

File _file = new File(fileName); // 讀入文件

this.srcFile = fileName;

// 查找最后一個(gè).

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); // 構(gòu)造Image對(duì)象

width = img.getWidth(null); // 得到源圖寬

height = img.getHeight(null); // 得到源圖長

}

/**

* 強(qiáng)制壓縮/放大圖片到固定的大小

*

* @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);

}

/**

* 以寬度為基準(zhǔn),等比例放縮圖片

*

* @param w

* int 新寬度

* @throws IOException

*/

public void resizeByWidth(int w) throws IOException {

int h = (int) (height * w / width);

resize(w, h);

}

/**

* 以高度為基準(zhǔn),等比例縮放圖片

*

* @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);

}

}

/**

* 設(shè)置目標(biāo)文件名 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;

}

/**

* 獲取目標(biāo)文件名 getDestFile

*/

public String getDestFile() {

return destFile;

}

/**

* 獲取圖片原始寬度 getSrcWidth

*/

public int getSrcWidth() {

return width;

}

/**

* 獲取圖片原始高度 getSrcHeight

*/

public int getSrcHeight() {

return height;

}

}

java 圖片縮放代碼

直接給你一個(gè)類,直接套用就好了

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.geom.AffineTransform;

import java.awt.image.BufferedImage;

import java.awt.image.ColorModel;

import java.awt.image.WritableRaster;

import java.io.File;

import javax.imageio.ImageIO;

public class Resize {

BufferedImage bufImage;

int width;

int height;

public Resize() {

// TODO Auto-generated constructor stub

}

public Resize(String srcPath,int width,int height) {

this.width = width;

this.height = height;

try{

this.bufImage = ImageIO.read(new File(srcPath));

}catch(Exception e){

e.printStackTrace();

}

}

public static BufferedImage rize(BufferedImage srcBufImage,int width,int height){

BufferedImage bufTarget = null;

double sx = (double) width / srcBufImage.getWidth();

double sy = (double) height / srcBufImage.getHeight();

int type = srcBufImage.getType();

if(type == BufferedImage.TYPE_CUSTOM){

ColorModel cm = srcBufImage.getColorModel();

WritableRaster raster = cm.createCompatibleWritableRaster(width,

height);

boolean alphaPremultiplied = cm.isAlphaPremultiplied();

bufTarget = new BufferedImage(cm, raster, alphaPremultiplied, null);

}else

bufTarget = new BufferedImage(width, height, type);

Graphics2D g = bufTarget.createGraphics();

g.setRenderingHint(RenderingHints.KEY_RENDERING,

RenderingHints.VALUE_RENDER_QUALITY);

g.drawRenderedImage(srcBufImage, AffineTransform.getScaleInstance(sx, sy));

g.dispose();

return bufTarget;

}

}

java如何實(shí)現(xiàn)把一個(gè)大圖片壓縮到指定大小的圖片且長寬比不變

也就是圖片壓縮,可以不修改任何大小的壓縮(速度快),也可等比例修改大小壓縮(較慢)

下面這是一段等比例縮小圖片的方法。

public String compressPic(String inputDir, String outputDir,

String inputFileName, String outputFileName, int width,

int height, boolean gp,String hzm) {

try {

if (!image.exists()) {

return "";

}

Image img = ImageIO.read(image);

// 判斷圖片格式是否正確

if (img.getWidth(null) == -1) {

return "no";

} else {

int newWidth; int newHeight;

// 判斷是否是等比縮放

if (gp == true) {

// 為等比縮放計(jì)算輸出的圖片寬度及高度

double rate1 = ((double) img.getWidth(null)) / (double) width ;

double rate2 = ((double) img.getHeight(null)) / (double) height ;

// 根據(jù)縮放比率大的進(jìn)行縮放控制

double rate = rate1 rate2 ? rate1 : rate2;

newWidth = (int) (((double) img.getWidth(null)) / rate);

newHeight = (int) (((double) img.getHeight(null)) / rate);

} else {

newWidth = img.getWidth(null); // 輸出的圖片寬度

newHeight = img.getHeight(null); // 輸出的圖片高度

}

BufferedImage tag = new BufferedImage((int) newWidth, (int) newHeight, BufferedImage.TYPE_INT_RGB);

/*

* Image.SCALE_SMOOTH 的縮略算法 生成縮略圖片的平滑度的

* 優(yōu)先級(jí)比速度高 生成的圖片質(zhì)量比較好 但速度慢

*/

Image im = img.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);

tag.getGraphics().drawImage(im, 0, 0, null);

FileOutputStream out = new FileOutputStream(outputDir + outputFileName);

//JPEGImageEncoder可適用于其他圖片類型的轉(zhuǎn)換

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

encoder.encode(tag);

out.close();

}

} catch (IOException ex) {

ex.printStackTrace();

}

return "ok";

}

怎么用java代碼放大或縮小圖片不失真。

放大圖像不會(huì)導(dǎo)致失真,而縮小圖像將不可避免的失真。

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 按比例縮小圖片應(yīng)該怎么實(shí)現(xiàn)?

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);

}


網(wǎng)站名稱:java圖片比例縮小代碼,java實(shí)現(xiàn)圖片放大和縮小代碼
文章網(wǎng)址:http://weahome.cn/article/hegecj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部