Это мой первый сервлет для создания и отображения изображения клиенту,Генерация изображения с помощью сервлетов
Но Существует ошибка компиляции времени в указанной секции по commect.
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) не могу найти и импортировать JPEGCodec
, Что такое решение?
классы из пакета com.sun не документированы, и не должны быть использованы. Используйте общедоступный API, который может записывать изображения в формате JPEG, например ImageIO. –
Не рекомендуется создавать изображения в сервлетах. Изображение должно уже существовать в файловой системе или в базе данных; не только неэффективно это делать в сервлете, но на некоторых серверах нет графических карт или GraphicsEnvironment, поэтому ваши графические операции могут завершиться неудачно. – ControlAltDel
@ControlAltDel Я могу придумать довольно много вариантов использования для создания сервера изображений. Изготовление изображений на стороне сервера не является чем-то необычным. Чтобы обработать не иметь графическую систему, просто установите свойство для режима безглавых: -Djava.awt.headless = true – Michael