绘制图片

com.sun.image.codec.jpeg.*在jdk里面的jre,找到rt.jar

Java代码

  1. import java.io.IOException;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import java.io.*;
  6. import javax.servlet.*;
  7. import javax.servlet.http.*;
  8. import com.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api
  9. import javax.imageio.stream.*;
  10. import java.awt.*;
  11. import java.awt.image.BufferedImage;
  12. /**
  13. *
  14. * 显示文件的Servlet
  15. * 负责从本地文件中读取图片,
  16. *
  17. */
  18. public class ShowPic extends javax.servlet.http.HttpServlet implements
  19. javax.servlet.Servlet {
  20. private static final String GIF = "image/gif;charset=GB2312";// 设定输出的类型
  21. private static final String JPG = "image/jpeg;charset=GB2312";
  22. /*
  23. * (non-Java-doc)
  24. *
  25. * @see javax.servlet.http.HttpServlet#HttpServlet()
  26. */
  27. public ShowPic() {
  28. super();
  29. }
  30. /*
  31. * (non-Java-doc)
  32. *
  33. * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,
  34. *      HttpServletResponse response)
  35. */
  36. protected void doGet(HttpServletRequest request,
  37. HttpServletResponse response) throws ServletException, IOException {
  38. doPost(request, response);
  39. }
  40. /*
  41. * (non-Java-doc)
  42. *
  43. * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
  44. *      HttpServletResponse response)
  45. */
  46. protected void doPost(HttpServletRequest request,
  47. HttpServletResponse response) throws ServletException, IOException {
  48. String spec = request.getParameter("spec");// 输出图片的类型的标志
  49. String imagePath = "D:\\temp\\1.jpg";
  50. response.reset();
  51. OutputStream output = response.getOutputStream();// 得到输出流
  52. if (imagePath.toLowerCase().endsWith(".jpg"))// 使用编码处理文件流的情况:
  53. {
  54. response.setContentType(JPG);// 设定输出的类型
  55. // 得到图片的真实路径
  56. // 得到图片的文件流
  57. InputStream imageIn = new FileInputStream(new File(imagePath));
  58. // 得到输入的编码器,将文件流进行jpg格式编码
  59. JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
  60. // 得到编码后的图片对象
  61. BufferedImage image = decoder.decodeAsBufferedImage();
  62. // 得到输出的编码器
  63. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
  64. encoder.encode(image);// 对图片进行输出编码
  65. imageIn.close();// 关闭文件流
  66. }
  67. if (imagePath.toLowerCase().endsWith(".gif"))// 不使用编码处理文件流的情况:
  68. {
  69. response.setContentType(GIF);
  70. ServletContext context = getServletContext();// 得到背景对象
  71. InputStream imageIn = context.getResourceAsStream(imagePath);// 文件流
  72. BufferedInputStream bis = new BufferedInputStream(imageIn);// 输入缓冲流
  73. BufferedOutputStream bos = new BufferedOutputStream(output);// 输出缓冲流
  74. byte data[] = new byte[4096];// 缓冲字节数
  75. int size = 0;
  76. size = bis.read(data);
  77. while (size != -1) {
  78. bos.write(data, 0, size);
  79. size = bis.read(data);
  80. }
  81. bis.close();
  82. bos.flush();// 清空输出缓冲流
  83. bos.close();
  84. }
  85. output.close();
  86. }
  87. }

想要调用的话,你可以简单的映射一下servelt,我就将servet的名映射为

Html代码

  1. <servlet>
  2. <servlet-name>ShowPic</servlet-name>
  3. <display-name>ShowPic</display-name>
  4. <description></description>
  5. <servlet-class>
  6. cn.ccb.zlgz.web.servlet.ShowPic</servlet-class>
  7. </servlet>
  8. <servlet-mapping>
  9. <servlet-name>ShowPic</servlet-name>
  10. <url-pattern>/ShowPic</url-pattern>
  11. </servlet-mapping>

使用HTML调用:

Html代码

  1. <html>
  2. <body>
  3. <img src="ShowPic?spec=2"></a>
  4. </body>
  5. </html>
时间: 2024-10-12 09:37:13

绘制图片的相关文章

html5 绘制图片 drawImage

要在绘图上下文中绘制图片,可以使用 drawImage 方法.该方法有三种不同的参数:? drawImage(image,dx,dy)? drawImage(image,dx,dy,dw,dh)? drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)其中的 image 参数可以是 HTMLImageElement.HTMLCanvasElement 和HTMLVideoElement 中的任一个对象.绘制参数的含义可以参看下图: 异常:如果第一个参数不是指定的元素类型

Java绘制图片生成图片文件进行预览

Java绘制图片并实现打印前生成图片文件进行预览, 适用于开发阶段. 如果要使用界面完成预览,请另找资源.这里用这个功能主要是用于结果预览,因为如果使用打印来进行结果验证,会浪费大量的纸张. Java代码: import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;imp

基于OpenGL编写一个简易的2D渲染框架-04 绘制图片

阅读文章前需要了解的知识,纹理:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 过程简述:利用 FreeImage 库加载图像数据,再创建 OpenGL 纹理,通过 Canvas2D 画布绘制,最后又 Renderer 渲染器渲染 本来想用 soil 库加载图像数据的,虽然方便,但是加载有些格式的图像文件时会出现一些问题.最后,改用 FreeImage 库来加载图像了. 添加 FreeImage 库到工

简单制作验证码和绘制图片

今天仍然是完善一般处理程序小项目,但是昨天小小的项目已经终结,今天只是完善一下新的样式罢啦,嘿嘿,我们通常在网上浏览图片时间都会看到图片上面呈现有水印字体的样式,其实这些图片都是通过一些简单的小技术来修饰的:另外我们现在在网上随处可见注册页面,当我们想在一个网站上面注册新的用户时间,需要注册完信息以后填写随机生成的验证码,或者我们想要登录一个网站时间也需要验证码的填写,由此可见,验证码也是我们程序员需要必备的小技术哦,下面就来总结一下这两项小功能的实现. 一.图片上的水印字体 我们可以看到第一张

UWP&amp;WP8.1 重新绘制图片 WriteableBitmap用法 图片转byte[]数组,byte[]数组转图片

---恢复内容开始--- WriteableBitmap 是UWP和WP8.1绘制图片的,重组图片的最重要方法.方法较为简单,方法多样性. 通过查看文档,WriteableBitmap的继承性是   WriteableBitmap : BitmapSource [BitmapSource : ImageSource],也就是说WB[WriteableBitmap下文简称]可以直接赋值给Image控件的Source. 用法介绍: WriteableBitmap WB=new WriteableBi

android中Canvas使用drawBitmap绘制图片

1.主要的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置 drawBitmap(Bitmap bitmap, float left, float top, Paint paint) 2.对图片剪接和限定显示区域 drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint): Rect src: 是对图片进行裁截,若是空null则显示整个图片 RectF dst:是图片在Canvas画布中显示的

【Android入门 十】绘制图片和图片旋转

首先简略说明绘制图片: 由于canvas.drawBitmap(bitmap, src, dst, paint);有四个参数所以大体有四五步. 1.通过getResource()方法得到drawable文件夹里BitmapDrawable类型的对象 2.将BitmapDrawable类型转化为Bitmap类型的对象 3.创建src, dst,两个长方形,src是指在原图形上截得的图片,dst是指贴到目标位置的长方形. 4.图片的画笔一般为null. 5.调用canvas.drawBitmap(b

opengl绘制图片

#include <GL/glew.h>#include <glut.h>#include "FreeImage.h"#include <stdio.h> #include <malloc.h> #pragma comment(lib, "FreeImage.lib") GLuint texture; // Storage For One Texture ( NEW ) /*void loadTexture(){ FI

iOS:quartz2D绘图(在PDF文件上绘制图片)

quartz2D还可以在PDF文件上绘制图片,它有自己的PDF Graphics Context上下文,通过UIGraphicsBeginPDFContextToFile方法开始上下文后就可以绘制图片了,最后记得使用UIGraphicsEndPDFContext()方法结束上下文.绘制pdf时,既可以绘制单页pdf,也可以绘制多页pdf成一本书,在绘制开始时,使用UIGraphicsBeginPDFPage()开始新的一页这是非常重要的.下面演示绘制单页pdf和多页的pdf. 具体的实例如下:

java绘图-绘制图片

这里主要说的是绘制图片,所谓绘制图片,就是把外部的图片信息加载到内存然后由java编译器去绘制,总的来说感觉相比B/S开发有一些麻烦,不是说原理麻烦,他们的原理其实都一样的,不一样的是他们实现的过程的复杂程度,要重写方法,加载图片,显示图片等.但是,还是有一定的意义,还有一点要注意的是,就是路径的加载,一定不能加载错误,负责回忆出现很大的问题. package huitu; import java.awt.*; import javax.swing.*; public class H1 exte