Search in sources :

Example 21 with ConvolveOp

use of java.awt.image.ConvolveOp in project my_curd by qinyou.

the class ImageResize method resize.

/**
 * 缩放gif图片
 *
 * @param originalFile 原图片
 * @param resizedFile  缩放后的图片
 * @param newWidth     宽度
 * @param quality      缩放比例 (等比例)
 * @throws IOException
 */
private static void resize(File originalFile, File resizedFile, int newWidth, float quality) {
    if (quality < 0 || quality > 1) {
        throw new IllegalArgumentException("Quality has to be between 0 and 1");
    }
    FileOutputStream out = null;
    try {
        ImageIcon ii = new ImageIcon(originalFile.getCanonicalPath());
        Image i = ii.getImage();
        Image resizedImage = null;
        int iWidth = i.getWidth(null);
        int iHeight = i.getHeight(null);
        if (iWidth > iHeight) {
            resizedImage = i.getScaledInstance(newWidth, (newWidth * iHeight) / iWidth, Image.SCALE_SMOOTH);
        } else {
            resizedImage = i.getScaledInstance((newWidth * iWidth) / iHeight, newWidth, Image.SCALE_SMOOTH);
        }
        // This code ensures that all the pixels in the image are loaded.
        Image temp = new ImageIcon(resizedImage).getImage();
        // Create the buffered image.
        BufferedImage bufferedImage = new BufferedImage(temp.getWidth(null), temp.getHeight(null), BufferedImage.TYPE_INT_RGB);
        // Copy image to buffered image.
        Graphics g = bufferedImage.createGraphics();
        // Clear background and paint the image.
        g.setColor(Color.white);
        g.fillRect(0, 0, temp.getWidth(null), temp.getHeight(null));
        g.drawImage(temp, 0, 0, null);
        g.dispose();
        // Soften.
        float softenFactor = 0.05f;
        float[] softenArray = { 0, softenFactor, 0, softenFactor, 1 - (softenFactor * 4), softenFactor, 0, softenFactor, 0 };
        Kernel kernel = new Kernel(3, 3, softenArray);
        ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
        bufferedImage = cOp.filter(bufferedImage, null);
        // Write the jpeg to a file.
        out = new FileOutputStream(resizedFile);
        // Encodes image as a JPEG data stream
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage);
        param.setQuality(quality, true);
        encoder.setJPEGEncodeParam(param);
        encoder.encode(bufferedImage);
    } catch (IOException e) {
        e.printStackTrace();
        LOG.error(e.getMessage());
    } finally {
        try {
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
            LOG.error(e.getMessage());
        }
    }
}
Also used : BufferedImage(java.awt.image.BufferedImage) BufferedImage(java.awt.image.BufferedImage) JPEGEncodeParam(com.sun.image.codec.jpeg.JPEGEncodeParam) JPEGImageEncoder(com.sun.image.codec.jpeg.JPEGImageEncoder) ConvolveOp(java.awt.image.ConvolveOp) Kernel(java.awt.image.Kernel)

Example 22 with ConvolveOp

use of java.awt.image.ConvolveOp in project vcell by virtualcell.

the class UShortImage method Blurring.

public static BufferedImage Blurring(BufferedImage bi) {
    BufferedImage buff = new BufferedImage(bi.getWidth(), bi.getHeight(), bi.getType());
    Kernel kernel = new Kernel(3, 3, new float[] { 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f });
    ConvolveOp op = new ConvolveOp(kernel);
    op.filter(bi, buff);
    return buff;
}
Also used : ConvolveOp(java.awt.image.ConvolveOp) Kernel(java.awt.image.Kernel) BufferedImage(java.awt.image.BufferedImage)

Example 23 with ConvolveOp

use of java.awt.image.ConvolveOp in project vcell by virtualcell.

the class UShortImage method Sharpening.

// Filtro Sharpening
public static BufferedImage Sharpening(BufferedImage bi) {
    BufferedImage buff = new BufferedImage(bi.getWidth(), bi.getHeight(), bi.getType());
    Kernel kernel = new Kernel(3, 3, new float[] { -1f, -1f, -1f, -1f, 9f, -1f, -1f, -1f, -1f });
    ConvolveOp op = new ConvolveOp(kernel);
    op.filter(bi, buff);
    return buff;
}
Also used : ConvolveOp(java.awt.image.ConvolveOp) Kernel(java.awt.image.Kernel) BufferedImage(java.awt.image.BufferedImage)

Example 24 with ConvolveOp

use of java.awt.image.ConvolveOp in project ashot by yandex-qatools.

the class BlurFilter method apply.

@Override
public BufferedImage apply(BufferedImage image) {
    Kernel kernel = new Kernel(3, 3, new float[] { 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f, 1f / 9f });
    BufferedImageOp blurOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
    return blurOp.filter(image, null);
}
Also used : BufferedImageOp(java.awt.image.BufferedImageOp) ConvolveOp(java.awt.image.ConvolveOp) Kernel(java.awt.image.Kernel)

Example 25 with ConvolveOp

use of java.awt.image.ConvolveOp in project protools by SeanDragon.

the class ToolImageResize method resize.

/**
 * 缩放gif图片
 *
 * @param originalFile
 *         原图片
 * @param resizedFile
 *         缩放后的图片
 * @param newWidth
 *         宽度
 * @param quality
 *         缩放比例 (等比例)
 *
 * @throws IOException
 */
private static void resize(File originalFile, File resizedFile, int newWidth, float quality) throws IOException {
    if (quality < 0 || quality > 1) {
        throw new IllegalArgumentException("Quality has to be between 0 and 1");
    }
    ImageIcon ii = new ImageIcon(originalFile.getCanonicalPath());
    Image i = ii.getImage();
    Image resizedImage = null;
    int iWidth = i.getWidth(null);
    int iHeight = i.getHeight(null);
    if (iWidth > iHeight) {
        resizedImage = i.getScaledInstance(newWidth, (newWidth * iHeight) / iWidth, Image.SCALE_SMOOTH);
    } else {
        resizedImage = i.getScaledInstance((newWidth * iWidth) / iHeight, newWidth, Image.SCALE_SMOOTH);
    }
    // This code ensures that all the pixels in the image are loaded.
    Image temp = new ImageIcon(resizedImage).getImage();
    // Create the buffered image.
    BufferedImage bufferedImage = new BufferedImage(temp.getWidth(null), temp.getHeight(null), BufferedImage.TYPE_INT_RGB);
    // Copy image to buffered image.
    Graphics g = bufferedImage.createGraphics();
    // Clear background and paint the image.
    g.setColor(Color.white);
    g.fillRect(0, 0, temp.getWidth(null), temp.getHeight(null));
    g.drawImage(temp, 0, 0, null);
    g.dispose();
    // Soften.
    float softenFactor = 0.05f;
    float[] softenArray = { 0, softenFactor, 0, softenFactor, 1 - (softenFactor * 4), softenFactor, 0, softenFactor, 0 };
    Kernel kernel = new Kernel(3, 3, softenArray);
    ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
    bufferedImage = cOp.filter(bufferedImage, null);
    // Write the jpeg to a file.
    try (FileOutputStream out = new FileOutputStream(resizedFile)) {
        ImageWriter imageWriter = ImageIO.getImageWritersBySuffix("jpg").next();
        ImageOutputStream ios = ImageIO.createImageOutputStream(out);
        imageWriter.setOutput(ios);
        // and metadata
        IIOMetadata imageMetaData = imageWriter.getDefaultImageMetadata(new ImageTypeSpecifier(bufferedImage), null);
        JPEGImageWriteParam jpegParams = (JPEGImageWriteParam) imageWriter.getDefaultWriteParam();
        jpegParams.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT);
        jpegParams.setCompressionQuality(quality);
        imageWriter.write(imageMetaData, new IIOImage(bufferedImage, null, null), jpegParams);
    }
}
Also used : ImageWriter(javax.imageio.ImageWriter) IIOImage(javax.imageio.IIOImage) BufferedImage(java.awt.image.BufferedImage) BufferedImage(java.awt.image.BufferedImage) ImageTypeSpecifier(javax.imageio.ImageTypeSpecifier) IIOImage(javax.imageio.IIOImage) IIOMetadata(javax.imageio.metadata.IIOMetadata) FileOutputStream(java.io.FileOutputStream) JPEGImageWriteParam(javax.imageio.plugins.jpeg.JPEGImageWriteParam) ConvolveOp(java.awt.image.ConvolveOp) Kernel(java.awt.image.Kernel) ImageOutputStream(javax.imageio.stream.ImageOutputStream)

Aggregations

ConvolveOp (java.awt.image.ConvolveOp)26 Kernel (java.awt.image.Kernel)21 BufferedImage (java.awt.image.BufferedImage)15 Color (java.awt.Color)4 GradientPaint (java.awt.GradientPaint)4 Graphics2D (java.awt.Graphics2D)4 LookupOp (java.awt.image.LookupOp)4 Font (java.awt.Font)3 FontMetrics (java.awt.FontMetrics)3 Rectangle2D (java.awt.geom.Rectangle2D)3 RoundRectangle2D (java.awt.geom.RoundRectangle2D)3 Point (java.awt.Point)2 AffineTransformOp (java.awt.image.AffineTransformOp)2 ByteLookupTable (java.awt.image.ByteLookupTable)2 LookupTable (java.awt.image.LookupTable)2 RescaleOp (java.awt.image.RescaleOp)2 WritableRaster (java.awt.image.WritableRaster)2 SurfaceData (sun.java2d.SurfaceData)2 JPEGEncodeParam (com.sun.image.codec.jpeg.JPEGEncodeParam)1 JPEGImageEncoder (com.sun.image.codec.jpeg.JPEGImageEncoder)1