Batik ライブラリを使用して Java で SVG ファイルを処理しています。スケーリングすると問題が発生します。線のピクセルが見えます。もちろん、これは起こらないはずです。少なくとも約 4000% ズームして滑らかさを維持できるはずです。
SVG ファイルは拡張クラスから読み込まれ、オーバーライド ペイント メソッドからペイントされます。まず、新しいスケールを AffineTransform 変数に設定し、これをメソッドのグラフィックスに適用し、super.paint() を使用してペイントします。
私は本当に立ち往生していて、問題を理解できません。私が使用している SVG ファイルは問題ありません。Inkscape で開いたところ、ピクセルが表示されずにズームできました。助けてください。
コード:
@Override
public void paint(Graphics g) {
try {
rad = (int)(radInit*zoom);
updateTransform();
Graphics2D g2d = (Graphics2D) g;
g2d.setTransform(transform);
super.paint(g);
paintElements(g2d);
} catch(NullPointerException nulle) {
// System.out.println("SVG not loaded yet");
}
}
private void updateTransform(){
transform = new AffineTransform();
transform.translate((-1)*zoom*centarX, (-1)*zoom*centarY);
transform.scale(zoom, zoom);
}