のサイズを変更すると、イメージがコードで間違っているものを拡大縮小されていないここで画像のJava getScaledInstance
ImageIcon ii=new ImageIcon("/Users/tushar_chutani/Desktop/apple.jpg");
Image image= ii.getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH);
「私のコードです?
のサイズを変更すると、イメージがコードで間違っているものを拡大縮小されていないここで画像のJava getScaledInstance
ImageIcon ii=new ImageIcon("/Users/tushar_chutani/Desktop/apple.jpg");
Image image= ii.getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH);
「私のコードです?
問題はImage.getScaledInstance()
が 完成し、スケーリングされた画像を返さないということです。これは、画像のピクセルが使用され、後 時間スケーリング作業の多くを残している。
たとえば、あなたがしてGraphics2D.drawImage()
コールにスケーリングされた画像を使用している場合このメソッドはfalseを返し、非同期描画を続行します。 Graphics2D.drawImage()
コールでImageObserver
パラメータを使用して、スケーリングと描画の完了を待機する必要があります。
次の例では、 をImageObserver
なしでより簡単にスケールする方法を示します。スケーリングはアイコン をBufferedImage
に描画して行います。
import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.awt.Color;
import java.awt.Graphics2D;
import java.io.File;
import javax.imageio.ImageIO;
import java.awt.RenderingHints;
public class Tushar2
{
public void scaleImage()
{
try
{
ImageIcon ii = new ImageIcon("/tmp/apple.jpg");
BufferedImage bi = new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D)bi.createGraphics();
g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY));
boolean b = g2d.drawImage(ii.getImage(), 0, 0, 50, 50, null);
System.out.println(b);
ImageIO.write(bi, "jpg", new File("/tmp/apple50.jpg"));
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String []args)
{
new Tushar2().scaleImage();
}
}
画像アイコンに画像を再度ラップすることができます。イメージアイコンは一般的にイメージをそのコンストラクタにロードし、この目的のために独自のメディアトラッカーを使用します。私は次のコードを使用しています:
Image image = icon.getImage().getScaledInstance(
icon.getIconWidth() * NEW/OLD,
icon.getIconHeight() * NEW/OLD,
Image.SCALE_SMOOTH);
icon = new ImageIcon(image, icon.getDescription());
新しいアイコンで直接操作するか、getImage()を呼び出して新しい画像を操作できます。上記のコードは、いくつかのNEWとOLDのペアで与えられたスケーリングを保持するアスペクト比も行います。
bye
どのようなエラーが表示されますか?あなたは実際にオリジナルのImageIconを表示できますか?スケーリングではないことはどうやって知っていますか?あなたが投稿したコードの2行に基づいて、あなたは画像で何もしません。問題を示す[SSCCE](http://sscce.org)を投稿してください。 – camickr
イメージが表示されない...イメージが白に変わります... –
それからイメージを読み込んでいない可能性があります。あなたはSSCCEを投稿していないので、私たちがあなたにできることは他にありません。 – camickr