3D技術研究所Wiki > WebP画像からBufferedImageを作成する

WebP画像をJavaで扱う方法をまとめています。

目次


JavaでWebP画像を扱うには

Java VP8 Decoder
http://sourceforge.net/projects/javavp8decoder/

上記サイトからWebPViewer-0.2.jarをダウンロードして使います。

WebP画像からBufferedImageを作成する

WebP画像からBufferedImageを作成する最小のサンプルプログラムです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.stream.FileImageInputStream;

import net.sf.javavp8decoder.imageio.WebPImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReaderSpi;

public class WebPTest {

    public static void main(String [] args) {
        
        String path = "images/test.webp";
        
        try {
            WebPImageReader reader = new WebPImageReader(new WebPImageReaderSpi());
            FileImageInputStream fiis = new FileImageInputStream(new File(path));
            reader.setInput(fiis);
            BufferedImage image = reader.read(0, null);
            fiis.close();
        }
        catch(IOException e) {
            e.printStackTrace();
        }

    }
}

WebP画像をSwingアプリケーションで利用する

WebP画像をSwingアプリケーションで利用するサンプルプログラムです。

WebP_BufferedImage.png
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.stream.FileImageInputStream;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import net.sf.javavp8decoder.imageio.WebPImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReaderSpi;


public class WebPTest {
    
    public static void main(String [] args) {
        
        String path = "images/test.webp";
        
        try {
            JFrame frame = new JFrame("test");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setTitle("WebP BufferedImage");
            frame.setSize(300, 200);
            frame.getContentPane().add(createWebPLabel(path));
            frame.setVisible(true);
        }
        catch(IOException e) {
            e.printStackTrace();
        }
        
    }
    
    private static JLabel createWebPLabel(String path) throws IOException {

        WebPImageReader reader = new WebPImageReader(new WebPImageReaderSpi());
        FileImageInputStream fiis = new FileImageInputStream(new File(path));
        reader.setInput(fiis);
        BufferedImage image = reader.read(0, null);
        fiis.close();

        ImageIcon icon = new ImageIcon(image.getScaledInstance(128, 128, BufferedImage.SCALE_SMOOTH));
        return new JLabel(icon);
        
    }

}

WebP画像をPNG画像へコンバートする

WebP画像をPNG画像へコンバートするサンプルプログラムです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.imageio.stream.FileImageInputStream;

import net.sf.javavp8decoder.imageio.WebPImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReaderSpi;

public class WebPTest {

    public static void main(String [] args) {
        
        String path = "images/test.webp";
        
        try {
            WebPImageReader reader = new WebPImageReader(new WebPImageReaderSpi());
            FileImageInputStream fiis = new FileImageInputStream(new File(path));
            reader.setInput(fiis);
            BufferedImage image = reader.read(0, null);
            fiis.close();

            ImageIO.write(image, "png", new File(path.replace(".webp", ".png")));
        }
        catch(IOException e) {
            e.printStackTrace();
        }

    }
}


関連ページ


スポンサードリンク


添付ファイル: fileWebP_BufferedImage.png 322件 [詳細]
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS