e667. 在给定图像中创建缓冲图像

An Image object cannot be converted to a BufferedImage object. The closest equivalent is to create a buffered image and then draw the image on the buffered image. This example defines a method that does this.

    // This method returns a buffered image with the contents of an image
    public static BufferedImage toBufferedImage(Image image) {
        if (image instanceof BufferedImage) {
            return (BufferedImage)image;
        }

        // This code ensures that all the pixels in the image are loaded
        image = new ImageIcon(image).getImage();

        // Determine if the image has transparent pixels; for this method‘s
        // implementation, see e661 确定图像中是否有透明像素
        boolean hasAlpha = hasAlpha(image);

        // Create a buffered image with a format that‘s compatible with the screen
        BufferedImage bimage = null;
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        try {
            // Determine the type of transparency of the new buffered image
            int transparency = Transparency.OPAQUE;
            if (hasAlpha) {
                transparency = Transparency.BITMASK;
            }

            // Create the buffered image
            GraphicsDevice gs = ge.getDefaultScreenDevice();
            GraphicsConfiguration gc = gs.getDefaultConfiguration();
            bimage = gc.createCompatibleImage(
                image.getWidth(null), image.getHeight(null), transparency);
        } catch (HeadlessException e) {
            // The system does not have a screen
        }

        if (bimage == null) {
            // Create a buffered image using the default color model
            int type = BufferedImage.TYPE_INT_RGB;
            if (hasAlpha) {
                type = BufferedImage.TYPE_INT_ARGB;
            }
            bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);
        }

        // Copy image to buffered image
        Graphics g = bimage.createGraphics();

        // Paint the image onto the buffered image
        g.drawImage(image, 0, 0, null);
        g.dispose();

        return bimage;
    }
Related Examples

原文地址:https://www.cnblogs.com/borter/p/9575545.html

时间: 2024-10-15 13:59:31

e667. 在给定图像中创建缓冲图像的相关文章

e668. 在一组像素中创建缓冲图像

This example demonstrates how to convert a byte array of pixel values that are indices to a color table into a BufferedImage. In particular, the example generates the Mandelbrot set in a byte buffer and combines this data with a SampleModel, ColorMod

e666. 创建缓冲图像

A buffered image is a type of image whose pixels can be modified. For example, you can draw on a buffered image and then draw the resulting buffered image on the screen or save it to a file. A buffered image supports many formats for storing pixels.

e664. 在图像中获取子图像

// From an Image image = createImage(new FilteredImageSource(image.getSource(), new CropImageFilter(x, y, w, h))); // From a BufferedImage bufferedImage = bufferedImage.getSubimage(x, y, w, h); Related Examples 原文地址:https://www.cnblogs.com/borter/p/9

e675. 翻转缓冲图像

// To create a buffered image, see e666 创建缓冲图像 // Flip the image vertically AffineTransform tx = AffineTransform.getScaleInstance(1, -1); tx.translate(0, -image.getHeight(null)); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE

PHP动态图像的创建要如何实现呢?

with-gd=[/path/to/gd] --with-jpeg-dir=[/path/to/jpeg-6b] --with-t1lib=[/path/to/t1lib]  完成添加后执行make命令,然后再执行make install命令,重新启动Apache后运行phpinfo()来检查一下新的设置是否生效了.现在,我们就可以开始图像创建工作了.  根据所安装的GD库文件的版本将决定你是否能创建GIF或PNG格式的图形文件.如果安装的是gd-1.6或以前的版本,可以使用GIF格式的文件但不

图像中的插值

内插是在诸如放大.收缩.旋转和几何校正等任务中广泛应用的基本工具. 从根本上看,内插是用已知数据来估计未知位置的数值的处理.用一个简单的例子开始讨论该话题.假设一副图像大小为500X500的像素放大到1.5倍到750X750像素.一种简单的放大方法是创建一个假想的750X750网格,它与原始图像有相同的间隔,然后将其收缩,使它准确的与原图像匹配.显然,收缩 后的750X750网格的像素间隔要小于原始图像的像素间隔.为了对覆盖的每一个点赋以灰度值,在原始图像中寻找最接近的像素,并把该像素的灰度赋给

AJAX & JavaScript Barcode Generator集成到AJAX Web应用程序创建条形码图像

AJAX & JavaScript Barcode Generator是原生的JavaScript,用于创建条形码图像,它可以很容易地集成到AJAX Web应用程序,Oracle报表和HTML中.因为它是原生的JavaScript ,所以不需要安装任何额外的组件,字体或插件来创建条形码,它还是功能完善的JavaScript条形码生成空控件. 具体功能: 多种条形码类型被一个单个的产品所支持. 多地区兼容性-本产品兼容了所有的语言和地区设置,包括Windows的双字节版本,如用于中国和日本,以及亚

报表上创建条形码图像的条码控件Native MS Access Barcode Generator

Native MS Access Barcode Generator条形码控件是一个VBA模块,可以方便地嵌入到微软Access数据库中,用于在报表上创建条形码图像.一旦被安装到一个数据库中,创建条形码时就不需要安装其它任何字体或组件:它是一个完整的.与数据库一起使用的条形码生成器,即使当它发布以后也一样. 具体功能: Native Access Barcode Generator产品是为那些希望不依赖任何外部设备,而将条形码功能纳入到数据库和应用程序的Access开发者而准备的.非开发人员和最

报表上创建条形码图像的条形码控件Native MS Access Barcode Generator

Native MS Access Barcode Generator是一个VBA模块,可以方便地嵌入到微软Access数据库中,用于在报表上创建条形码图像.一旦被安装到一个数据库中,创建条形码时就不需要安装其它任何字体或组件:它是一个完整的.与数据库一起使用的条形码生成器,即使当它发布以后也一样. 具体功能: Native Access Barcode Generator产品是为那些希望不依赖任何外部设备,而将条形码功能纳入到数据库和应用程序的Access开发者而准备的.非开发人员和最终用户可能