簡単なスケーリングを行うことは知っていますが、画像を最大300 * 100ピクセルにスケーリングするにはどうすればよいですか?AffineTransform APIクラスを検索しましたが、このためのメソッドが見つかりませんでした。
事前にthx
簡単なスケーリングを行うことは知っていますが、画像を最大300 * 100ピクセルにスケーリングするにはどうすればよいですか?AffineTransform APIクラスを検索しましたが、このためのメソッドが見つかりませんでした。
事前にthx
ターゲットの幅/高さに対する画像の幅/高さに基づいて、変換の係数を計算します。
コードを書いて、問題が発生した場合は、具体的な質問をしてください。
高さを300ピクセル、幅を100ピクセルにするスケールを計算して、スケール係数に「戻す」必要があると思います。
何かのようなもの
double xScale = 100/image.getWidth();
double yScale = 300/image.getHeight();
AffineTransform transform = new AffineTransform();
transform.setToScale( xScale, yScale );
//paint code goes here
ただし、これでは均一にスケーリングされません。これを行うには、xとyに同じスケールを使用する必要があります。したがって、画像が画面/ディスプレイ/ページに収まるようにしようとしている場合は、最も広い寸法の縮尺を使用します。したがって、上記の例を使用するには...
double xScale = 100/image.getWidth();
double yScale = 300/image.getHeight();
double theScale = xScale > yScale ? xScale : yScale;
AffineTransform transform = new AffineTransform();
transform.setToScale( theScale , theScale );
//paint code goes here
これは単なる提案ですが、お役に立てば幸いです。