标题
[java/jpg/jpeg/rt.jar]java 图片水印
clq
浏览(0) +
2010-01-18 20:04:59 发表
编辑
关键字:
java 图片水印
这里用到了 sun 的 rt.jar 文件,但仍然要在项目中引入. 这个可能是因为这个 jpeg 处理包不算 java 标准所致的吧.
clq
//图片水印
void MarkImage(String imgpath) //throws IOException
{
try
{
java.io.OutputStream out;
//out = new FileOutputStream("c:\\1.jpg");
//out = new FileOutputStream(imgpath);
int width = 500;
int height = 500;
/*
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.setBackground(Color.GRAY);
g.clearRect(0, 0, width, height);
g.setColor(Color.RED);
*/
//原图
imgpath = imgpath.replaceAll("\\\\","/");
//ImageIcon imgIcon=new ImageIcon( imgpath + "card/card.jpg"); //这是本地的一张图片
ImageIcon imgIcon = new ImageIcon(imgpath); //这是本地的一张图片
Image oldImg = imgIcon.getImage();
//BufferedImage image = javax.ImageIO.read(new FileInputStream(imgpath));
//新图
//BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
BufferedImage bi = new BufferedImage(oldImg.getWidth(null), oldImg.getHeight(null) + 16, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.setBackground(Color.BLACK);//g.setBackground(Color.GRAY);
g.clearRect(0, 0, width, height);
g.setColor(Color.RED);
//复制
g.drawImage(oldImg, 0, 0, null );
String fontFamily = "宋体";//"隶书";
java.awt.Font font=new java.awt.Font(fontFamily, java.awt.Font.PLAIN, 12);//20);
g.setFont(font);
//g.drawString("name中文", 250, 120);
g.setColor(Color.WHITE);
//g.drawString("name中文", 2, oldImg.getHeight(null) + 12);
g.drawString(imgMark, 2, oldImg.getHeight(null) + 12);
g.dispose();
bi.flush();
// encode:
//关闭原图片
//oldImg = null;
//imgIcon = null;
out = new FileOutputStream(imgpath);//放在前面的话会毁掉原图片
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
//param.setQuality(100f, false);
//param.setQuality(0.75f, false);
param.setQuality(0.95f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
//try
//{
// encoder.encode(bi);
//}
//catch(IOException ioe)
//{
// ioe.printStackTrace();
//}
out.close();//没有这个文件就锁定
}
catch(Exception e)
{
e.printStackTrace();
}
}
clq
import java.awt.image.*;
import java.awt.*;
import javax.swing.ImageIcon;
import com.sun.image.codec.jpeg.*;
clq
奇怪,还得是 jre 下面的,而不是 jdk/jre 下面的。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.