package com.photomg.suolue;
import java.io.*;
import java.security.PublicKey;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
import java.sql.*;
/**
* Created by IntelliJ IDEA.
* User: Rain
* Date: 11-1-18
* Time: 下午4:21
* To change this template use File | Settings | File Templates.
*/
//縮略圖類
//本java類能將jpg圖片文件,進行等比或非等比的大小轉換。
//具體使用方法
//s_pic大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文名,生成小圖片寬度,生成小圖片高度,是否等比縮放(默認為true))
public class Deal {
??? String InputDir;//輸入圖路徑
??? String OutputDir;//輸出圖路徑
??? String InputFileName;//輸入圖文件名
??? String OutputFileName;//輸出圖文建平
??? int OutputWidth=80;//默認輸出圖片寬度
??? int OutputHeight=80;//默認輸出圖片高度
??? int rate=0;
??? boolean proportion=true;//是否進行等比縮放標記(默認為等比縮放)
??? public Deal(){
??? }
??? public void setInputDir(String inputDir) {
??????? InputDir = inputDir;
??? }
??? public void setOutputDir(String outputDir) {
??????? OutputDir = outputDir;
??? }
??? public void setInputFileName(String inputFileName) {
??????? InputFileName = inputFileName;
??? }
??? public void setOutputFileName(String outputFileName) {
??????? OutputFileName = outputFileName;
??? }
??? public void setOutputWidth(int outputWidth) {
??????? OutputWidth = outputWidth;
??? }
??? public void setOutputHeight(int outputHeight) {
??????? this.OutputHeight = outputHeight;
??? }
??? public void setW_H(int width,int height){
??????? this.OutputHeight=height;
??????? this.OutputWidth=width;
??? }
??? public String s_pic(){
??????? BufferedImage image;
??????? String NewFileName;
??????? //建立輸出文件對象
??? File file=new File(OutputDir+OutputFileName);
??????? FileOutputStream tempout=null;
??????? try{
??????????? tempout=new FileOutputStream(file);
??????? }catch (Exception e){
??????????? System.out.println();e.toString();
??????? }
??????? Image img=null;
??????? Toolkit tk=Toolkit.getDefaultToolkit();
??????? Applet app=new Applet();
??????? MediaTracker mt=new MediaTracker(app);
??????? try{
??????????? img=tk.getImage(InputDir+InputFileName);
??????????? mt.addImage(img,0);
??????????? mt.waitForID(0);
??????? }catch (Exception e){
??????????? e.printStackTrace();
??????? }
??????? if(img.getWidth(null)==-1){
??????????? System.out.println("can't read,retry!"+"<BR>");
??????????? return "no";
??????? }else{
??????????? int new_w;
??????????? int new_h;
??????????? if(this.proportion==true){//判斷是否是等比縮放
??????????????? //為等比縮放計算輸出的圖片寬度及高度
??????????????? double rate1=((double)img.getWidth(null))/(double) OutputWidth+0.1;
??????????????? double rate2=((double) img.getHeight(null))/(double) OutputWidth+0.1;
??????????????? double rate=rate1>rate2?rate1:rate2;
??????????????? new_w=(int) (((double) img.getWidth(null))/rate);
??????????????? new_h=(int) (((double) img.getHeight(null))/rate);
??????????? }else{
??????????????? new_w=OutputWidth;//輸出的圖片寬度.
??????????????? new_h=OutputHeight;//輸出的額圖片高度.
??????????? }
??????????? BufferedImage buffImg=new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
??????????? Graphics g=buffImg.createGraphics();
??????????? g.setColor(Color.white);
??????????? g.fillRect(0,0,new_w,new_h);
??????????? g.drawImage(img,0,0,new_w,new_h,null);
??????????? g.dispose();
??????????? JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(tempout);
??????????? try{
??????????????? encoder.encode(buffImg);
??????????????? tempout.close();
??????????? }catch(IOException e){
??????????????? System.out.println(e.toString());
??????????? }
??????? }
??????? return "ok";
??? }
??? public String s_pic(String InputDir,String OutputDir,String InputFileName,String OutputFileName,int width,int height,boolean gp){
??????? //輸入圖路徑
??????? this.InputDir=InputDir;
??????? //輸出圖路徑
??????? this.OutputDir=OutputDir;
??????? //輸入圖文件名
??????? this.InputFileName=InputFileName;
??????? //輸出圖文件名
??????? this.OutputFileName=OutputFileName;
??????? //設置圖片長度和寬度
??????? setW_H(width,height);
??????? //是否是等比縮放 標記
??????? this.proportion=gp;
??????? return s_pic();
??? }
??? public static void main(String [] a){
??????? //s_pic(大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文件名,生成小圖片寬度,生成小圖片高度,是否等比縮放)
??????? Deal mypic=new Deal();
??????? System.out.println(
??????? mypic.s_pic("E:\\c寸\\pic\\","E:\\c寸\\pic\\","a.jpg","b.jpg",120,90,true));
??? }
}
公司老總:
劉總
import java.io.*;
import java.security.PublicKey;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
import java.sql.*;
/**
* Created by IntelliJ IDEA.
* User: Rain
* Date: 11-1-18
* Time: 下午4:21
* To change this template use File | Settings | File Templates.
*/
//縮略圖類
//本java類能將jpg圖片文件,進行等比或非等比的大小轉換。
//具體使用方法
//s_pic大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文名,生成小圖片寬度,生成小圖片高度,是否等比縮放(默認為true))
public class Deal {
??? String InputDir;//輸入圖路徑
??? String OutputDir;//輸出圖路徑
??? String InputFileName;//輸入圖文件名
??? String OutputFileName;//輸出圖文建平
??? int OutputWidth=80;//默認輸出圖片寬度
??? int OutputHeight=80;//默認輸出圖片高度
??? int rate=0;
??? boolean proportion=true;//是否進行等比縮放標記(默認為等比縮放)
??? public Deal(){
??? }
??? public void setInputDir(String inputDir) {
??????? InputDir = inputDir;
??? }
??? public void setOutputDir(String outputDir) {
??????? OutputDir = outputDir;
??? }
??? public void setInputFileName(String inputFileName) {
??????? InputFileName = inputFileName;
??? }
??? public void setOutputFileName(String outputFileName) {
??????? OutputFileName = outputFileName;
??? }
??? public void setOutputWidth(int outputWidth) {
??????? OutputWidth = outputWidth;
??? }
??? public void setOutputHeight(int outputHeight) {
??????? this.OutputHeight = outputHeight;
??? }
??? public void setW_H(int width,int height){
??????? this.OutputHeight=height;
??????? this.OutputWidth=width;
??? }
??? public String s_pic(){
??????? BufferedImage image;
??????? String NewFileName;
??????? //建立輸出文件對象
??? File file=new File(OutputDir+OutputFileName);
??????? FileOutputStream tempout=null;
??????? try{
??????????? tempout=new FileOutputStream(file);
??????? }catch (Exception e){
??????????? System.out.println();e.toString();
??????? }
??????? Image img=null;
??????? Toolkit tk=Toolkit.getDefaultToolkit();
??????? Applet app=new Applet();
??????? MediaTracker mt=new MediaTracker(app);
??????? try{
??????????? img=tk.getImage(InputDir+InputFileName);
??????????? mt.addImage(img,0);
??????????? mt.waitForID(0);
??????? }catch (Exception e){
??????????? e.printStackTrace();
??????? }
??????? if(img.getWidth(null)==-1){
??????????? System.out.println("can't read,retry!"+"<BR>");
??????????? return "no";
??????? }else{
??????????? int new_w;
??????????? int new_h;
??????????? if(this.proportion==true){//判斷是否是等比縮放
??????????????? //為等比縮放計算輸出的圖片寬度及高度
??????????????? double rate1=((double)img.getWidth(null))/(double) OutputWidth+0.1;
??????????????? double rate2=((double) img.getHeight(null))/(double) OutputWidth+0.1;
??????????????? double rate=rate1>rate2?rate1:rate2;
??????????????? new_w=(int) (((double) img.getWidth(null))/rate);
??????????????? new_h=(int) (((double) img.getHeight(null))/rate);
??????????? }else{
??????????????? new_w=OutputWidth;//輸出的圖片寬度.
??????????????? new_h=OutputHeight;//輸出的額圖片高度.
??????????? }
??????????? BufferedImage buffImg=new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
??????????? Graphics g=buffImg.createGraphics();
??????????? g.setColor(Color.white);
??????????? g.fillRect(0,0,new_w,new_h);
??????????? g.drawImage(img,0,0,new_w,new_h,null);
??????????? g.dispose();
??????????? JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(tempout);
??????????? try{
??????????????? encoder.encode(buffImg);
??????????????? tempout.close();
??????????? }catch(IOException e){
??????????????? System.out.println(e.toString());
??????????? }
??????? }
??????? return "ok";
??? }
??? public String s_pic(String InputDir,String OutputDir,String InputFileName,String OutputFileName,int width,int height,boolean gp){
??????? //輸入圖路徑
??????? this.InputDir=InputDir;
??????? //輸出圖路徑
??????? this.OutputDir=OutputDir;
??????? //輸入圖文件名
??????? this.InputFileName=InputFileName;
??????? //輸出圖文件名
??????? this.OutputFileName=OutputFileName;
??????? //設置圖片長度和寬度
??????? setW_H(width,height);
??????? //是否是等比縮放 標記
??????? this.proportion=gp;
??????? return s_pic();
??? }
??? public static void main(String [] a){
??????? //s_pic(大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文件名,生成小圖片寬度,生成小圖片高度,是否等比縮放)
??????? Deal mypic=new Deal();
??????? System.out.println(
??????? mypic.s_pic("E:\\c寸\\pic\\","E:\\c寸\\pic\\","a.jpg","b.jpg",120,90,true));
??? }
}
公司老總:

劉總

更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
