¿Cómo puedo ampliar el tamaño de la anchura en un archivo PNG?

Inazense:

Actualmente estoy trabajando con imágenes PNG y estoy poco bloqueado debido a una tarea que no está seguro de cómo solucionar ...

Este es el escenario. Tengo un archivo PNG de 655x265 píxeles con un código de barras en el interior de la misma. Lo que tengo que hacer es 'extender' el ancho de la imagen que se acaba de incluir una zona en blanco en el lado izquierdo de la imagen, al igual que este:

Cambiar el tamaño de la lona y se extiende en PNG archivo Java

El problema es que no pasa nada con las dimensiones de imagen cuando ejecuto mi código:

public static void main(String[] args)
{
    try
    {
        String path = "C:\\Users\\xxx\\Desktop\\a.png";
        BufferedImage image = ImageIO.read(new File(path));
        resizeImage(path, image.getWidth() + 100, image.getHeight());
        Graphics graphics = image.getGraphics();
        graphics.setColor(Color.BLACK);
        graphics.setFont(new Font("Verdana", Font.PLAIN, 40));
        graphics.drawString("TTT", 5, 250);
        graphics.dispose();
        ImageIO.write(image, "png", new File(path));
        System.out.println("Image created");
    } catch (Exception e)
    {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
    System.out.println("Fin");
}

public static void resizeImage(String path, int newHeight, int newWidth) throws IOException
{
    File inputFile = new File(path);
    BufferedImage inputImage = ImageIO.read(inputFile);

    BufferedImage outputImage = new BufferedImage(newWidth, newHeight, inputImage.getType());

    Graphics2D graphics = outputImage.createGraphics();
    graphics.drawImage(inputImage, 0, 0, newWidth, newHeight, null);
    graphics.dispose();

    ImageIO.write(outputImage, "png", new File(path));
    inputImage.flush();
    outputImage.flush();
}

¿Sabe lo que estoy haciendo mal? Es uno de mis primeros tiempos de trabajo con archivos de imagen y, probablemente, no he entendido bien algo importante ...

Editar: Solución proporciona en los comentarios. Enlace

GameDroids:

Lo que podría hacer es dejar que el método de tomar una BufferedImage, cambiar su tamaño y devolverlo:

public static BufferedImage resizeImage(BufferedImage inputImage, int newHeight, int newWidth){
    BufferedImage outputImage = new BufferedImage(newWidth, newHeight, inputImage.getType());
    Graphics2D graphics = outputImage.createGraphics();
    graphics.drawImage(inputImage, 0, 0, newWidth, newHeight, null);
    graphics.dispose(); 
    outputImage.flush();
    return outputImage;
}

A continuación, seguir trabajando en la imagen redimensionada en su método de influencia:

    String path = "C:\\Users\\xxx\\Desktop\\a.png";
    BufferedImage image = ImageIO.read(new File(path));
    image = resizeImage(image, image.getWidth() + 100, image.getHeight());  // here you replace the image with the new, resized image from your method
    Graphics graphics = image.getGraphics();
    graphics.setColor(Color.BLACK);
    ....

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=315756&siteId=1
Recomendado
Clasificación