⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageoperate.java

📁 用于图片处理
💻 JAVA
字号:
/* *  向指定的图片上写字,生成图片缩略图等。 *  Made In GamVan */package com.gamvan.image;import com.gamvan.tools.Arith;import java.awt.*;import java.awt.image.*;import javax.imageio.ImageIO.*;import java.io.*;import com.sun.image.codec.jpeg.JPEGCodec;  import com.sun.image.codec.jpeg.JPEGImageEncoder;  // 缩略图public class ImageOperate {     Image img1;    String message = "";    String filePath = ""; //程序本身所在的根目录, 绝对路径。    String waterImg1 = "", waterImg2=""; //水印图片文件名    String waterPath = ""; //水印图片所在路径,绝对路径    String str = new String("club.GamVan.com");    public void waterImage(String oldFile, String newFile){        /* oldFile加水印前的文件名.         * newFile加水印后的文件名。         */        filePath = filePath.replace("\\","\\\\");        filePath += "\\\\";         try{            File myFile = new File(filePath + oldFile); //指定文件名含路径            Image src = javax.imageio.ImageIO.read(myFile); //构造Image对象             int w=src.getWidth(null); //得到源图宽              int h=src.getHeight(null); //得到源图长            Graphics gim = src.getGraphics();            BufferedImage tag = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);              tag.getGraphics().drawImage(src,0,0,w,h,null);            if(!waterImg1.equals("") && waterImg2.equals("")){                Image img1 = javax.imageio.ImageIO.read(new File(waterPath+waterImg1));//构造Image对象                 int w1 = img1.getWidth(null); //得到源图宽                  int h1 = img1.getHeight(null); //得到源图长                tag.getGraphics().drawImage(img1,w-w1-12,h-30,w1,h1,null);            }            if(!waterImg1.equals("") && !waterImg2.equals("")){                Image img1 = javax.imageio.ImageIO.read(new File(waterPath+waterImg1));//构造Image对象                 int w1 = img1.getWidth(null); //得到源图宽                  int h1 = img1.getHeight(null); //得到源图长                Image img2 = javax.imageio.ImageIO.read(new File(waterPath+waterImg2));//构造Image对象                     int w2 = img2.getWidth(null); //得到源图宽                      int h2 = img2.getHeight(null); //得到源图长                           tag.getGraphics().drawImage(img2,w-w2-12,h-30,w2,h2,null);                    tag.getGraphics().drawImage(img1,w-w1-w2-15,h-32,w1,h1,null);            }            FileOutputStream out=new FileOutputStream(filePath + newFile); //输出到文件流              JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);               encoder.encode(tag); //JPEG编码             gim.dispose();            out.close();               }catch(Exception e){             message = waterPath + e.toString() + filePath;         }        }    public void writeImage(String oldFile, String newFile){        filePath = filePath.replace("\\","\\\\");        filePath += "\\\\";        //设置字体        try{            File myFile = new File(filePath + oldFile); //指定文件名含路径            Image src = javax.imageio.ImageIO.read(myFile); //构造Image对象             int w=src.getWidth(null); //得到源图宽              int h=src.getHeight(null); //得到源图长            //在你创立的image上写字            Graphics gim = src.getGraphics();            Font font = new Font("Tahoma", Font.BOLD, 14);            gim.setFont(font);                        gim.setColor(Color.black);            gim.drawString(str, w-(str.length()*10-8), h-19);            gim.setColor(Color.lightGray);            gim.drawString(str, w-(str.length()*10-7), h-20);            BufferedImage tag = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);              tag.getGraphics().drawImage(src,0,0,w,h,null);            FileOutputStream out=new FileOutputStream(filePath + newFile); //输出到文件流              JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);               encoder.encode(tag); //JPEG编码             gim.dispose();            out.close();          }catch(Exception e){            message = e.toString();        }    }     public void shrinkImage(int w, int h, String oldFile, String newFile) throws Exception {        // 参数w表示缩小后的宽度 h缩小后的高度,任何一个为0 则按另一方比例缩小。        Arith arith = new Arith();        filePath = filePath.replace("\\","\\\\");        filePath += "\\\\";        double wd = 0;        double hd = 0;        String ws = "", hs = "";        try{            File myFile = new File(filePath + oldFile); //指定文件名含路径            Image src = javax.imageio.ImageIO.read(myFile); //构造Image对象              int wideth=src.getWidth(null); //得到源图宽              int height=src.getHeight(null); //得到源图长            if((w>0 && h==0) && w < wideth){                // 计算出宽度的缩放比例。                wd = arith.div(Double.parseDouble(String.valueOf(w)),Double.parseDouble(String.valueOf(wideth)),10);                hd = arith.mul(wd,Double.parseDouble(String.valueOf(height)));                hd = arith.round(hd,0); //四舍五入保留小数点0位                hs = String.valueOf(hd);                hs = hs.substring(0, hs.indexOf("."));                h = Integer.parseInt(hs) ; //按比例缩小高度            }else if((h > 0 && w == 0) && h < height){                // 计算出高度的缩放比例。                hd = arith.div(Double.parseDouble(String.valueOf(h)),Double.parseDouble(String.valueOf(height)),10);                wd = arith.mul(hd,Double.parseDouble(String.valueOf(wideth)));                wd = arith.round(wd,0); //四舍五入保留小数点0位                ws = String.valueOf(wd);                ws = ws.substring(0, ws.indexOf("."));                w = Integer.parseInt(ws) ; //按比例缩小高度            }else{                w = wideth;                h = height;            }            java.awt.image.BufferedImage tag = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);              tag.getGraphics().drawImage(src,0,0,w,h,null); //绘制缩小后的图              FileOutputStream out=new FileOutputStream(filePath + newFile); //输出到文件流              JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);               encoder.encode(tag); //JPEG编码             out.close();          }catch(Exception e){            message = e.toString();        }    }    public String getMessage(){        return this.message;    }    public void setFilePath(String filePath){        if(filePath!=null){            this.filePath = filePath;        }else{            this.filePath = "";        }    }    public void setStr(String str){        if(str!=null){            this.str = str;        }else{            this.str = "club.GamVan.com";        }    }    public void setWaterImg1(String str){        if(str!=null){            this.waterImg1 = str;        }else{            this.waterImg1 = "";        }    }    public void setWaterImg2(String str){        if(str!=null){            this.waterImg2 = str;        }else{            this.waterImg2 = "";        }    }      public void setWaterPath(String str){        if(str!=null){            this.waterPath = str;        }else{            this.waterPath = "";        }    } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -