java 给图片添加文字或浮水印

java 操作图片的步骤如下

 

javax.imageio.ImageIO 使用此类把图片加载到内存中,

用法如下

 读取图片的函数原型,我们可以看出 BufferdImage 需要File来构造

 

 

static BufferedImage  read(File input)

返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 File 的结果。

static BufferedImage read(URL input)

返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 URL 的结果。

 

BufferedImage 子类描述具有可访问图像数据缓冲区的 Image

BufferedImage的函数

 Graphics2D createGraphics()
          创建一个 Graphics2D,可以将它绘制到此 BufferedImage 中。

 Graphics getGraphics()
          此方法返回 Graphics2D,但此处是出于向后兼容性的考虑。

 

首先要知道Graphics  是用来绘制2D对象的, 这样我们就可以操作内存中的图片缓冲区啦,

Graphics2D 类扩展 Graphics 类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。

 

Shape 操作

文本操作

Image 操作

 

下面简单实例 是使用文本操作 :

 

 

 

static BufferedImage read(URL input)
          返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 URL 的结果。
try {
			BufferedImage buffImage =  ImageIO.read(new File("src/Wind.jpg"));
			Graphics g = buffImage.getGraphics();
			Font font = new Font("黑体",Font.BOLD,30);
			g.setFont(font);
			g.drawString("测试文字", 100, 100);
		
			FileOutputStream outImg = new FileOutputStream(new File("test.jpg"));
			ImageIO.write(buffImage,"jpg", outImg);
			outImg.flush();
			outImg.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

 

 

绘制图片其实很简单

 

 

drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
          呈现使用 BufferedImageOp 过滤的 BufferedImage
abstract  boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
          呈现一个图像,在绘制前进行从图像空间到用户空间的转换。

drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
          绘制指定图像中当前可用的图像。

drawImage(Image img, int x, int y, ImageObserver observer)
          绘制指定图像中当前可用的图像。

drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
          绘制指定图像中已缩放到适合指定矩形内部的图像。

还有几个重载函数

 

简单的使用方法是

 

//如何得到Image img
//如果你有丰富的编程经验,那么你应该很熟悉 继承多态
/* 
Image的
直接已知子类: 
BufferedImage, VolatileImage 
*/
//那么我们第一个参数可以传 BufferedImage 对象

BufferedImage 可以使用
BufferedImage buffImage =  ImageIO.read(new File("src/Wind.jpg"));

g.drawImage(buffImage,20,20,null);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值