String bg_filename="d://temptest//bg.jpg";
String original_filename_500 =null;
String watermark_filename = "d://temptest//bokee.png";
final int MARK_H=15; //水印的高
final int NO_MARK=100;//图片的高或者宽
final int BOKEE_MARK=200;//图片宽在200
final int HAS_MARK=300; //图片宽在300以上
final int Y_FONT=10;
String original_filename_500 =null;
String watermark_filename = "d://temptest//bokee.png";
final int MARK_H=15; //水印的高
final int NO_MARK=100;//图片的高或者宽
final int BOKEE_MARK=200;//图片宽在200
final int HAS_MARK=300; //图片宽在300以上
final int Y_FONT=10;
try {
for(int i=1;i<=18;i++){ //做实验的时候我循环了18张
original_filename_500="d://temptest//"+i+".jpg";
File file_500=null;
Image img=null;
MagickImage mi_wm=null;
try{
file_500=new File(original_filename_500);
img = ImageIO.read(file_500);
}catch(Exception e){
System.out.println("can not open "+original_filename_500+"500's photo");
}
if(img!=null){
int width = img.getWidth(null);
int height = img.getHeight(null);
if(width<=NO_MARK||height<=NO_MARK){
System.out.println(original_filename_500+" no watermark");
}else{
ImgTools imag = new ImgTools(width, height+MARK_H, bg_filename);
imag.MakeBigByJMagickGB(bg_filename);
ImageInfo ii_orig = new ImageInfo();
ii_orig.setFileName(bg_filename);
MagickImage mi_orig = new MagickImage(ii_orig);
ImageInfo ii_wm_500 = new ImageInfo();
ii_wm_500.setFileName(original_filename_500);
MagickImage mi_wm_500 = new MagickImage(ii_wm_500);
mi_orig.compositeImage(CompositeOperator.AddCompositeOp,mi_wm_500, 0, 0);
mi_orig.setMagick("JPG");
mi_orig.setCompression(CompressionType.JPEGCompression);
final ImageInfo ii_result = new ImageInfo();
ii_result.setQuality(90);
if(width<=BOKEE_MARK&&width>NO_MARK){
DrawInfo aInfo = new DrawInfo(ii_orig);
aInfo.setFill(PixelPacket.queryColorDatabase("gray"));
aInfo.setOpacity(0);
aInfo.setPointsize(9);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
aInfo.setText("http://www.fiten.com");
int X=(width-NO_MARK)/2;
int Y=height+Y_FONT;
aInfo.setGeometry("+"+X+"+"+Y+"");
mi_orig.annotateImage(aInfo);
}else if(width>BOKEE_MARK&&width<=HAS_MARK) {
DrawInfo aInfo = new DrawInfo(ii_orig);
aInfo.setFill(PixelPacket.queryColorDatabase("gray"));
aInfo.setOpacity(0);
aInfo.setPointsize(9);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
String domain="manzhouyexing02";
aInfo.setText( http://www.fiten.com/);
int X=(width-(110+(5*domain.length()-1)))/2;
int Y=height+Y_FONT;
aInfo.setGeometry("+"+X+"+"+Y+"");
mi_orig.annotateImage(aInfo);
}else if(width>HAS_MARK) {
ImageInfo ii_wm = new ImageInfo();
ii_wm.setFileName(watermark_filename);
mi_wm = new MagickImage(ii_wm);
mi_orig.compositeImage(CompositeOperator.AddCompositeOp,mi_wm, 1, height);
DrawInfo aInfo = new DrawInfo(ii_orig);
aInfo.setFill(PixelPacket.queryColorDatabase("gray"));
aInfo.setOpacity(0);
aInfo.setPointsize(9);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
String domain="manzhouyexing02";
aInfo.setText( http://www.fiten.com/);
int X=width-105-(5*domain.length()-1)-8;
int Y=height+Y_FONT;
aInfo.setGeometry("+"+X+"+"+Y+"");
mi_orig.annotateImage(aInfo);
}
mi_orig.setFileName("d://temptest//"+i+"_"+1+".jpg");
mi_orig.writeImage(ii_result);
mi_orig.destroyImages();
if(width>HAS_MARK)mi_wm.destroyImages();
}
}
}
} catch (MagickException me) {
me.printStackTrace();
}
System.exit(0);
for(int i=1;i<=18;i++){ //做实验的时候我循环了18张
original_filename_500="d://temptest//"+i+".jpg";
File file_500=null;
Image img=null;
MagickImage mi_wm=null;
try{
file_500=new File(original_filename_500);
img = ImageIO.read(file_500);
}catch(Exception e){
System.out.println("can not open "+original_filename_500+"500's photo");
}
if(img!=null){
int width = img.getWidth(null);
int height = img.getHeight(null);
if(width<=NO_MARK||height<=NO_MARK){
System.out.println(original_filename_500+" no watermark");
}else{
ImgTools imag = new ImgTools(width, height+MARK_H, bg_filename);
imag.MakeBigByJMagickGB(bg_filename);
ImageInfo ii_orig = new ImageInfo();
ii_orig.setFileName(bg_filename);
MagickImage mi_orig = new MagickImage(ii_orig);
ImageInfo ii_wm_500 = new ImageInfo();
ii_wm_500.setFileName(original_filename_500);
MagickImage mi_wm_500 = new MagickImage(ii_wm_500);
mi_orig.compositeImage(CompositeOperator.AddCompositeOp,mi_wm_500, 0, 0);
mi_orig.setMagick("JPG");
mi_orig.setCompression(CompressionType.JPEGCompression);
final ImageInfo ii_result = new ImageInfo();
ii_result.setQuality(90);
if(width<=BOKEE_MARK&&width>NO_MARK){
DrawInfo aInfo = new DrawInfo(ii_orig);
aInfo.setFill(PixelPacket.queryColorDatabase("gray"));
aInfo.setOpacity(0);
aInfo.setPointsize(9);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
aInfo.setText("http://www.fiten.com");
int X=(width-NO_MARK)/2;
int Y=height+Y_FONT;
aInfo.setGeometry("+"+X+"+"+Y+"");
mi_orig.annotateImage(aInfo);
}else if(width>BOKEE_MARK&&width<=HAS_MARK) {
DrawInfo aInfo = new DrawInfo(ii_orig);
aInfo.setFill(PixelPacket.queryColorDatabase("gray"));
aInfo.setOpacity(0);
aInfo.setPointsize(9);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
String domain="manzhouyexing02";
aInfo.setText( http://www.fiten.com/);
int X=(width-(110+(5*domain.length()-1)))/2;
int Y=height+Y_FONT;
aInfo.setGeometry("+"+X+"+"+Y+"");
mi_orig.annotateImage(aInfo);
}else if(width>HAS_MARK) {
ImageInfo ii_wm = new ImageInfo();
ii_wm.setFileName(watermark_filename);
mi_wm = new MagickImage(ii_wm);
mi_orig.compositeImage(CompositeOperator.AddCompositeOp,mi_wm, 1, height);
DrawInfo aInfo = new DrawInfo(ii_orig);
aInfo.setFill(PixelPacket.queryColorDatabase("gray"));
aInfo.setOpacity(0);
aInfo.setPointsize(9);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
String domain="manzhouyexing02";
aInfo.setText( http://www.fiten.com/);
int X=width-105-(5*domain.length()-1)-8;
int Y=height+Y_FONT;
aInfo.setGeometry("+"+X+"+"+Y+"");
mi_orig.annotateImage(aInfo);
}
mi_orig.setFileName("d://temptest//"+i+"_"+1+".jpg");
mi_orig.writeImage(ii_result);
mi_orig.destroyImages();
if(width>HAS_MARK)mi_wm.destroyImages();
}
}
}
} catch (MagickException me) {
me.printStackTrace();
}
System.exit(0);
}