Java 用Servlet生成图像
这是我第一个生成并向客户端显示图像的servlet 但是commect提到的部分中存在编译时错误Java 用Servlet生成图像,java,servlets,Java,Servlets,这是我第一个生成并向客户端显示图像的servlet 但是commect提到的部分中存在编译时错误 public class DynamicImage extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentTyp
public class DynamicImage extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("image/jpeg");
//create image
int width = 200;
int height = 30;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//get drawing context
Graphics2D g = (Graphics2D) image.getGraphics();
g.setColor(Color.GRAY);
g.fillRect(0, 0, width, height);
//draw a string
g.setColor(Color.WHITE);
g.setFont(new Font("Dialog", Font.PLAIN, 14));
g.drawString("My String!", 10, height / 2 + 4);
//draw a border
g.setColor(Color.BLACK);
g.drawRect(0, 0, width - 1, height - 1);
//dispose context
g.dispose();
//send back image to the client
ServletOutputStream sos = response.getOutputStream();
com.sun.image.codec.jpeg.JPEGImageEncoder encoder = JPEGCodec // Compile Time Error, cant find JPEGCodec
}
}
我的IDE(Netbeans)无法找到并导入JPEG编解码器,解决方案是什么
我建议不要使用这个类。这只会让人头疼。您需要下载rt.jar文件并将其添加到类路径中。
从下载。
如果上述链接不起作用,请访问com.sun包中的类,这些类没有文档记录,不应使用。使用可以用JPEG格式编写图像的公共API,如ImageIO。强烈建议不要用servlet生成图像。映像应该已经存在于文件系统或数据库中;在servlet中这样做不仅效率低下,而且有些服务器没有图形卡或图形环境,因此您的图形操作可能会失败。@ControlAltDel我可以想出许多在服务器端生成图像的用例。在服务器端生成图像一点也不奇怪。要处理没有图形系统的问题,只需设置headless模式的属性:-Djava.awt.headless=true