0

通常のサーブレットでは、次のコードを使用して画像を生成できます。

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() に書き込むにはどうすればよいですか?

4

1 に答える 1

1

ここに答えがあります:

    response.setContentType("image/jpeg");
    OutputStream out = response.getOutputStream();
    image.compress(Bitmap.CompressFormat.JPEG, 100, out);
于 2013-05-28T09:19:52.577 に答える