Animated Gifを回転して表示する
Total: 1378
, Today: 1
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
Animated Gif
から生成したImageIcon
を回転して表示する方法をテストします。
Screenshot
Advertisement
サンプルコード
Icon icon3 = new ImageIcon(url) {
@SuppressWarnings("PMD.AvoidSynchronizedAtMethodLevel")
@Override public synchronized void paintIcon(Component c, Graphics g, int x, int y) {
Graphics2D g2 = (Graphics2D) g.create();
g2.translate(x + getIconHeight(), y);
g2.transform(AffineTransform.getQuadrantRotateInstance(1));
super.paintIcon(c, g2, 0, 0);
g2.dispose();
}
@Override public int getIconWidth() {
return super.getIconHeight();
}
@Override public int getIconHeight() {
return super.getIconWidth();
}
};
JLabel label3 = new JLabel(icon3);
label3.setBorder(BorderFactory.createTitledBorder("Override ImageIcon#paintIcon(...)"));
View in GitHub: Java, Kotlin解説
Default ImageIcon
Animated GIF
ファイルからImageIcon
を作成して比較用に表示
Wrapping with another Icon
Animated GIF
ファイルからImageIcon
を作成し、これを90
度回転して表示するIcon
でラップして表示- Iconを回転する
- Iconを指定した数の四分円だけ回転して表示する
Icon
を配置したJLabel
を親フレームのリサイズなどで再描画しないとアニメーションが更新されない
Override JPanel#paintComponent(...)
Animated GIF
ファイルからImageIcon
を作成し、これをJPanel#paintComponent(...)
をオーバーライドして90
度回転して表示- java - Rotate an animated GIF (ImageIcon) using AffineTransform - Stack Overflow
JPanel
の親フレームをリサイズするとアニメーションが途切れる場合がある- ImageIconのリソースを開放してAnimatedGifを最初から再生する
Override ImageIcon#paintIcon(...)
ImageIcon#paintIcon(...)
をオーバーライドして画像を90
度回転して表示するImageIcon
を作成
参考リンク
- Iconを回転する
- Iconを指定した数の四分円だけ回転して表示する
- java - Rotate an animated GIF (ImageIcon) using AffineTransform - Stack Overflow
- ImageIconのリソースを開放してAnimatedGifを最初から再生する