- //adv0.jpg就是背景图片,注意函数与图片格式对应
- $im = imagecreatefromjpeg('/www/law/images/demo/adv0.jpg');
- $font_color = imagecolorallocate ($im, 0, 250, 10); //这是文字颜色,绿色
- $text = "张三的博客"; //文字内容
- $font_file = "/www/font/hyi_xkj.ttf"; //字体的linux绝对路径
- //26:字体, 0 是角度, 10,36是坐标, $font_color是文字色, font是字体, 文本是填入的文字
- imagettftext($im, 26,0, 10, 36, $font_color ,$font_file, $text); 往图片插入文字
- // output image
- header ('content-type: image/png'); //即便是从jpg拷贝的图片,也能以png输出,
- imagepng ($im);
- // clean up
- imagedestroy($im);
- //生成水印方法二,代码如下:
- public final class imageutils {
- public imageutils() {
- }
- public final static string getpressimgpath(){
- return applicationcontext.getrealpath("/template/data/util/shuiyin.gif");
- }
- /**
- * 把图片印刷到图片上
- * @param pressimg -- 水印文件
- * @param targetimg -- 目标文件
- * @param x
- * @param y
- */
- public final static void pressimage(string pressimg, string targetimg, int x, int y) {
- try {
- file _file = new file(targetimg);
- image src = imageio.read(_file);
- int wideth = src.getwidth(null);
- int height = src.getheight(null);
- bufferedimage image = new bufferedimage(wideth, height,
- bufferedimage.type_int_rgb);
- graphics g = image.creategraphics();
- g.drawimage(src, 0, 0, wideth, height, null);
- // 水印文件
- file _filebiao = new file(pressimg);
- image src_biao = imageio.read(_filebiao);
- int wideth_biao = src_biao.getwidth(null);
- int height_biao = src_biao.getheight(null);
- g.drawimage(src_biao, wideth - wideth_biao - x, height - height_biao -y, wideth_biao,
- height_biao, null);
- // /
- g.dispose();
- fileoutputstream out = new fileoutputstream(targetimg);
- jpegimageencoder encoder = jpegcodec.createjpegencoder(out);
- encoder.encode(image);
- out.close();
- } catch (exception e) {
- e.printstacktrace();
- }
- }
- /**
- * 打印文字水印图片
- * @param presstext --文字
- * @param targetimg -- 目标图片
- * @param fontname -- 字体名
- * @param fontstyle -- 字体样式
- * @param color -- 字体颜色
- * @param fontsize -- 字体大小
- * @param x -- 偏移量
- * @param y
- */
- public static void presstext(string presstext, string targetimg, string fontname,int fontstyle, int color, int fontsize, int x, int y) {
- try {
- file _file = new file(targetimg);
- image src = imageio.read(_file);
- int wideth = src.getwidth(null);
- int height = src.getheight(null);
- bufferedimage image = new bufferedimage(wideth, height,
- bufferedimage.type_int_rgb);
- graphics g = image.creategraphics();
- g.drawimage(src, 0, 0, wideth, height, null);
- // string s=www.111cn.net;
- g.setcolor(color.red);
- g.setfont(new font(fontname, fontstyle, fontsize));
- g.drawstring(presstext, wideth - fontsize - x, height - fontsize/2 - y);
- g.dispose();
- fileoutputstream out = new fileoutputstream(targetimg);
- jpegimageencoder encoder = jpegcodec.createjpegencoder(out);
- encoder.encode(image);
- out.close();
- } catch (exception e) {
- system.out.println(e);
- }
- }
- //开源代码Vevb.com
- public static void main(string[] args) {
- pressimage("c:/shuiyin/shuiyin.gif", "c:/shuiyin/dsc02342.jpg", 20 ,20);
- }
- }
新闻热点
疑难解答