Java - Chuyển đổi RenderedImage(interface) thành BufferedImage(class).(Convert RenderedImage to BufferedImage)



Bài viết này không hướng dẫn chỉ cung cấp một hàm(function) để chuyển đổi RenderedImage(interface) thành BufferedImage(class).

Function này tôi tìm thấy trên diễn đàn http://www.jguru.com và dùng phục vụ cho công việc của mình, do có tính đặc thù về Java Image bạn nào biết và cần thì lấy sử dụng thôi. Mình không mô tả nha ^^!






Dưới đây là code của hàm chuyển đổi.
public static BufferedImage convert_BufferedImage_to_RenderedImage(RenderedImage img)
{
    if (img instanceof BufferedImage)
    {
        return (BufferedImage)img; 
    } 

    ColorModel cm = img.getColorModel();
    int width = img.getWidth();
    int height = img.getHeight();

    WritableRaster raster = cm.createCompatibleWritableRaster(width, height);
    boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
    Hashtable properties = new Hashtable();
    String[] keys = img.getPropertyNames();

    if (keys!=null)
    {
        for (int i = 0; i < keys.length; i++)
        {
            properties.put(keys[i], img.getProperty(keys[i]));
        }
    }

    BufferedImage result = new BufferedImage(cm, raster, isAlphaPremultiplied, properties);
    //img.copyData(raster);
    return result;

}










No comments:

Post a Comment