0

使用しているときにBufferedImage呼び出すことBufferedImage.getColorModel() ができることは知っていますが、インスタンスが1つしかない場合に同じ値を取得するにはどうすればよいjava.awt.Imageですか?

================================================== ==================================

更新しました..

OKそうです。今、私が達成したいことを正確に説明しましょう:

画像のサムネイルを作成するメソッドを作成したいと思います。

最初に、JPEGファイル形式の画像に変換して結果をファイルに書き込みます。そうすると、元の画像の透明度が失われることがわかったので、ターゲット画像をPNGファイル形式で保存して、 BufferedImageTYPE_BYTE_INDEXEDはターゲットファイルサイズのサイズを縮小しますが、最終的に、元の画像自体に多くの色が含まれている場合、多くの色を含めることTYPE_BYTE_INDEXEDができないため、ラフな品質のターゲット画像が得られることに気付きました。

だからええと..今、私は私が得imageTypeたものから得ることができるかどうかを確認するためにいくつかの研究をする必要がありImageます。imageType元々の場​​合はターゲット画像でも使用できます。そうでない場合は、TYPE_BYTE_INDEXEDまたは(元の画像の元の値によって異なります)を使用して、高品質のサムネイルと小さいサイズの画像ターゲットファイルを使用できるようにします。TYPE_BYTE_INDEXEDTYPE_BYTE_ARGBTYPE_BYTE_RGB

4

3 に答える 3

-1
protected static BufferedImage toBufferedImage(Image image) {

        if (image instanceof BufferedImage) {
            return (BufferedImage) image;
        } else {

            int w = image.getWidth(null);
            int h = image.getHeight(null);

            BufferedImage bi = new BufferedImage(w, h,
                    BufferedImage.TYPE_INT_RGB);

            Graphics graphics = bi.getGraphics();
            graphics.drawImage(image, 0, 0, w, h, Color.WHITE, null);
            graphics.dispose();

            return bi;
        }

    }
于 2012-08-20T13:52:55.870 に答える