• 締切済み

画像を分割するには?【パズルゲーム製作】

プログラミングの勉強のため、 フラッシュゲームによくあるような、 15パズルを作ろうと思っています。 使用言語はJavaのSwingです。 最初に、次のようなコードで、 パズルに使用する画像をラベルに追加しましたが、 この画像を4*4に分割する方法が見つかりませんでした。 Icon icon = new ImageIcon(imageAddress[0]); int iconHeight = icon.getIconHeight(); int iconWidth = icon.getIconWidth(); JLabel lbl = new JLabel(icon); どうすればいいかアドバイスをいただけると助かります。 また、ゲーム作りや、画像処理関係で、 参考になる書籍などもあれば教えてほしいです。 よろしくお願いします。 参考になるかわかりませんが、 以下に全ソースをのせておきます。 import javax.swing.*; public class Game15 extends JFrame{ private static final long serialVersionUID = 1L; String[] imageAddress = { "2506723431_fe31da9b39.jpg", "2507551314_4800225620.jpg", "2949837591_e2ef3f5515.jpg", "3098905192_b7aa1f5715.jpg", "3830931070_76a5b67b85.jpg", "3830931616_16c6ef11ee.jpg"}; public Game15(String s){ super(s); JPanel p0 = new JPanel(); Icon icon = new ImageIcon(imageAddress[0]); int iconHeight = icon.getIconHeight(); int iconWidth = icon.getIconWidth(); JLabel lbl = new JLabel(icon); p0.add(lbl); add(p0); setSize(iconWidth + 16,iconHeight + 40); } public static void main(String[] args){ Game15 game15 = new Game15("15パズル"); game15.setDefaultCloseOperation(EXIT_ON_CLOSE); //game15.setSize(iconWidth,300); game15.setLocationRelativeTo(null); game15.setVisible(true); } }

みんなの回答

  • HarukaV49
  • ベストアンサー率53% (48/89)
回答No.2

java.awt.image.BufferedImageクラスを使います。 そうすれば、  BufferedImage#getSubimage(int x, int y, int w, int h) を使って、簡単に任意位置の画像を切り出せます。

hiyokko7
質問者

お礼

なるほど。試してみようと思います。 ありがとうございました。

  • kyonn2008
  • ベストアンサー率22% (4/18)
回答No.1

ペイント系のソフト使って画像を4*4に分けては? そういうことではなくて?

hiyokko7
質問者

お礼

分割はソフト側でやったほうが手間がかからないのではと思ったのですが。 画像の枚数が少数なら分割するのもありですかね。 ありがとうございました。

関連するQ&A