Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2009-03-29

画像変更機能をつけよう!

| 17:53

 こっちのほうが難しそうに思っていたけど、案外簡単に出来そうな気がしてきたので、ハイスコア表示はいったん休んで、こちらに着手。


 メニューに、画像変更を追加して、コードは以下のとおり

#-----画像変更-------------------------------------------------
*画像変更
  マイピクチャー作業フォルダ変更。
  「*.jpg;*.jpeg;*.png;*.bmp」のファイル選択。
  裏画面の画像はそれ。
  
  裏画面を盤サイズ,盤サイズで画像リサイズ。
  新規ゲーム
#--------------------------------------------------------------

 これで、とりあえずは動きました。

 でも、世の中の画像はたいてい正方形じゃないので、比率が変になってしまいます。

 かといって、比率変えずにリサイズでは、余白が出来てしまうので、15パズルができません(汗)


 好きなところを好きなサイズで正方形にトリミングしてリサイズできるのが一番よさそうだけど、何気に難しそうな上、必要ないときにはいちいちんなの手だから、短いほうの辺にあわせて、長いほうの辺の両端を切って、盤サイズにリサイズするようにしようと思う。

#-----画像変更-------------------------------------------------
*画像変更
  マイピクチャー作業フォルダ変更。
  「*.jpg;*.jpeg;*.png;*.bmp」のファイル選択。
  作業用の画像はそれ。
  
  もし、作業用のW>作業用のHならば
    x=(作業用のW-作業用のH)/2。y=0。
    x2=作業用のH+x。y2=作業用のH。
  違えば
    x=0。y=(作業用のH-作業用のW)/2。
    x2=作業用のW。y2=作業用のW+y

  作業用のx,y,x2,y2を裏画面の0,0へ画像部分コピー

  裏画面を盤サイズ,盤サイズで画像リサイズ。
  裏画面を母艦の15,15へ画像コピー。
  新規ゲーム
#--------------------------------------------------------------

 これでいけるか? とおもったら、あれれ~?

 大きな画像の端っこが切り取られて表示されてる。

 一度400*400の画像が入った裏画面には、大きな画像をコピーしても、大きくならないらしい。むむむ。

 ーくるなら、裏画像を先に大きくしておくしかないね!

 裏では、15パズルの画像がおっきく引き伸ばされているだろうけど、見えないから問題なし!

 して、キャンセル押した時にっ白くなってしまう問題を解決する処理を追加

 折角だから「」を使う!

 「でなければ」何気に書いてみたら、使えた!!

 で、こんな感じ。

#-----画像変更-------------------------------------------------
*画像変更
  マイピクチャー作業フォルダ変更。
  「*.jpg;*.jpeg;*.png;*.bmp」のファイル選択。
  もしそれでなければ	#キャンセルした時は処理しない
    作業用の画像はそれ。

    もし、作業用のW>作業用のHならば	#横長の画像
      x=(作業用のW-作業用のH)/2。y=0。
      x2=作業用のH+x。y2=作業用のH。
      裏画面をy2,y2で画像リサイズ。	 #短いほうの辺に長さあわせて正方形
    違えば
      x=0。y=(作業用のH-作業用のW)/2。
      x2=作業用のW。y2=作業用のW+y
      裏画面をx2,x2で画像リサイズ。

    作業用のx,y,x2,y2を裏画面の0,0へ画像部分コピー。
    裏画面を盤サイズ,盤サイズで画像リサイズ。
    裏画面を母艦の15,15へ画像コピー。
    新規ゲーム
#--------------------------------------------------------------

 できた~♪

 ・・・だけど、難易度高すぎ(--;

 選んだ画像のせいもあるけど、ワタシには解けない・・onz

ゲスト



トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090329