4

私は楽しみのために画像ライブラリを書いていますが、解決できないような問題に遭遇しました。このクラスは非常に単純です。写真を撮り、処理し、JFrame を介して表示し、最後に BufferedImage (javax.imageio.ImageIO) として保存します。これは私の写真が JFrame を通してどのように見えるかです (これは私の ColorEnhance クラスです... Drustan 星雲上にあります):

JFrameから見た画像

保存されたバージョンは次のとおりです (png ですが、 ImageIO.write() がサポートするすべてのタイプは同じように見えます)。

保存後のイメージ

変更がどこで発生するかはわかりませんが、これをぼかしメソッドで実行すると、行全体が png の何もないところから表示されます...とにかく、ここにいくつかのコードがあります:

public void writeToFile(BufferedImage finalPic, String nameToAppend)
{
    String temp=fileName.replace(".", nameToAppend+".");
    String ext=fileName.substring(fileName.indexOf(".")+1);
    File file=new File(temp);
    try
    {
        ImageIO.write(finalPic, ext.toUpperCase(), file);
        System.out.println("Successfully saved to: "+temp);
    } catch (Exception e) { e.getMessage(); }
}

public void displayImage(String titleName)
{
    ImageIcon icon = new ImageIcon(newPic);
    JFrame frame = new JFrame(titleName);
    JLabel label = new JLabel(icon);
    label.setIcon(icon);
    frame.getContentPane().add(label, BorderLayout.CENTER);
    frame.setSize(WIDTH, HEIGHT+22);
    frame.setVisible(true);
}

最後にもう 1 つ、保存は一部の処理クラスで他の処理クラスよりもうまく機能するということです。これ以上コードを確認する必要がある場合は、お問い合わせください。

4

1 に答える 1