みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

プログラミングの勉強のため、
フラッシュゲームによくあるような、
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);
}
}

投稿日時 - 2009-08-18 04:32:56

QNo.5215946

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

java.awt.image.BufferedImageクラスを使います。

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

投稿日時 - 2009-08-18 16:08:27

お礼

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

投稿日時 - 2009-08-18 23:13:23

ANo.1

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

投稿日時 - 2009-08-18 13:00:34

お礼

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

投稿日時 - 2009-08-18 23:17:00

あなたにオススメの質問