6

サイズを変更した画像を特定のフォルダに保存するにはどうすればよいですか?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    ImgChooser ic = new ImgChooser();
    ImageIcon icon = new ImageIcon(me,"id pic");
    Image img1 = icon.getImage();
    Image img2 = img1.getScaledInstance(105, 105, 0);
    icon.setImage(img2);
    jLabel1.setIcon(icon);
} 

この最初のコードは、画像を取得してサイズを変更する場所です。次に、サイズ変更された画像を別のフォルダーに保存します。前もって感謝します

4

3 に答える 3

9

他の人がすでに言ったように使用してくださいImageIO.write(...) (+1)。ここに追加するのはあなたのための例です:

public static void main(String[] args) {

    try {

        BufferedImage originalImage = ImageIO.read(new File("c:\\test.jpg"));//change path to where file is located
        int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType();

        BufferedImage resizeImageJpg = resizeImage(originalImage, type, 100, 100);
        ImageIO.write(resizeImageJpg, "jpg", new File("c:\\images\\testresized.jpg")); //change path where you want it saved

    } catch (IOException e) {
        System.out.println(e.getMessage());
    }

}

private static BufferedImage resizeImage(BufferedImage originalImage, int type, int IMG_WIDTH, int IMG_HEIGHT) {
    BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
    Graphics2D g = resizedImage.createGraphics();
    g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
    g.dispose();

    return resizedImage;
}

参照:

于 2012-09-27T21:06:56.737 に答える
4

これを試して...

使用ImageIO.write()方法...

static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException

例えば:

try {

    // retrieve image

    BufferedImage bi = getMyImage();
    File outputfile = new File("saved.png");
    ImageIO.write(bi, "png", outputfile);

} catch (IOException e) {
    ...
}
于 2012-09-27T12:47:46.203 に答える
3

最初に画像を に変換してBufferedImageから、 を使用ImageIOして画像を保存します。

BufferedImage image = new BufferedImage(img2.getWidth(null), img2.getHeight(null), BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2 = image.createGraphics();
g2.drawImage(img2, 0, 0, null);
g2.dispose();
ImageIO.write(image, formatName, outputFile);

形式名はStringlike "jpg""png"または"gif"andoutputFileFile画像の保存先です。

また、アルファ レベル (透明度) をサポートしない画像を保存する場合、BufferedImageコンストラクターに渡す 3 番目のパラメーターは、次のような 3 バイトの画像にする必要があることに注意してください。BufferedImage.TYPE_3BYTE_BGR

于 2012-09-27T12:31:03.203 に答える