服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用servlets动态生成图片


image i/o 包及对 jdk 的要求
  如果你的 servlet 要动态生成图象,首先你需要 image i/o,明确的说,你需要生成一图片来响应http请求。核心 java api 没有直接提供用于保持任何图象的功能。然而,你可以用 sun 的 java 1.1 类库来做 image i/o。而且 sun 的 1.2 版的 image i/o 提供了对 jpeg 图象进行编码和解码的包。因为这些代码在 com.sun 包中,不是核心api的一部分,也不是标准的扩展包,因此,会影响代码的可移植性。

  使用 jdk 1.2 将比 jdk 1.1 版容易的多,本文介绍 jdk 1.2 下的实现方法。示例有三个步骤:创建、绘制、保存。在本例仅仅示范如何画一个椭圆,当然你可以根据你的需要修改。例子使用了 com.sun.image.codec.jpeg 包生成 jpeg 文件。如果要生成 gif 文件,你可以使用第三方的包,如 acme labs 的 gif encoder。

1. 使用适当的尺寸创建一个 bufferedimage 对象:
bufferedimage
 image = new bufferedimage(width, height, bufferedimage.type_int_rgb);

2. 在 image 对象上绘制你想要的图象。假设你想要一个白色的背景,你需要画一个白色填充的矩形。否则背景将是缺省的黑色:

 graphics g = image.getgraphics();
  g.setcolor(color.white);
  g.fillrect(0,0, width, height);
  g.setcolor(color.red);
  g.drawoval(0, 0, width, height);

3. 使用 com.sun.image.codec.jpeg 包输出 bufferedimage:

 response.setcontenttype(”image/jpeg”);
 servletoutputstream out = response.getoutputstream();  
 jpegimageencoder encoder = jpegcodec.createjpegencoder(out);
 encoder.encode(image);
 out.close();

扫描关注微信公众号