通常のサーブレットでは、次のコードを使用して画像を生成できます。
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
{
int width = 200, height = 200;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
drawInside(g); // draw on g
// return
response.setContentType("image/jpeg");
OutputStream out = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
しかし、Android は BufferedImage と Graphics をサポートしていないため、次のようなものを使用する必要があります。
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
{
int width = 200, height = 200;
Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas g = new Canvas(image);
drawInside(g); // draw on g
// ...
}
しかし、Android も JPEGImageEncoder をサポートしていません。画像を ServletResponse.getOutputStream() に書き込むにはどうすればよいですか?