Dev*_*ler 22
这真的很容易,只是不太直观.
你需要扩展ImageTranscoder.在createImage您分配a 的方法中,将其BufferedImage缓存为成员变量,然后将其返回.该writeImage方法为空.而且你需要添加一个getter来检索BufferedImage.
它看起来像这样:
class MyTranscoder extends ImageTranscoder {
private BufferedImage image = null;
public BufferedImage createImage(int w, int h) {
image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
return image;
}
public void writeImage(BufferedImage img, TranscoderOutput out) {
}
public BufferedImage getImage() {
return image;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,要创建一个图像,您需要创建一个代码转换器的实例,并通过设置将其传递给所需的宽度和高度TranscodingHints.最后,您从TranscoderInput转码为空目标.然后调用代码转换器上的getter来获取图像.
调用看起来像这样:
MyTranscoder transcoder = new MyTranscoder();
TranscodingHints hints = new TranscodingHints();
hints.put(ImageTranscoder.KEY_WIDTH, width);
hints.put(ImageTranscoder.KEY_HEIGHT, height);
transcoder.setTranscodingHints(hints);
transcoder.transcode(new TranscoderInput(url), null);
BufferedImage image = transcoder.getImage();
Run Code Online (Sandbox Code Playgroud)
简单吧?(是的,没错.只花了我两个星期的时间来解决这个问题.叹了口气.)
| 归档时间: |
|
| 查看次数: |
11460 次 |
| 最近记录: |