« 本日の水無川沿いの桜、満開かな (2017-04-07) | トップページ | 今年の桜は、もろに雨の中だなあ »

2017年4月 8日 (土)

Python:サムネイル画像で一覧する PyMyViewer を更新した V003_0

2017-04-08(土)曇り/雨

 選択したフォルダ内の画像ファイルを、サムネイル画像で一覧するスクリプト  PyMyViewer を更新しました。これは、先日からやっているE7-00でのテストで動かなかったものを対策したものです。
 先日の記事「Nokia E7-00でのPythonスクリプトのテストを始めた その4

 画像ファイルをサムネイル画像の一覧で見るといえば、内蔵の「ギャラリー」に似ていますが、ギャラリーは全部のフォルダから画像ファイルを引っ張ってきますが、 PyMyViewer は選択したフォルダ内のファイルだけを対象とします。どちらが必要かは時と場合に寄りますので、動くようにしておくことにしました。

 動かない大きな理由は、以前対策したPyResizeJpgと同じく、graphicsモジュールを使うときに redraw callback 処理を用意してないせいでしょう。Nokia 5800XMのときは動いたのですが、新しいE7-00の方は、その辺はきっちりとしているのかもしれません。

(1)img.rectangle を使う方式
  これは最初、 img.rectangleで1枚のカンバス上に、リサイズした写真で塗りつぶした四角(rectangle)を配置して、 redraw callback 処理も含めて描画時には、そのカンバスを出力するようにしたものです。これだと、グローバル変数にした1枚のカンバスを持ち回りするだけで済むからです。

-----これを画像枚数分ループさせてから出力する--------
img.rectangle(((pos_x,pos_y), (pos_x1,pos_y1)), width=1,
  outline=(255,255,255), pattern=self.disp_img_list[i])
---------------------------------------------------

Scre000034a

 結果の画像です。一見、うまくいったかと喜んだのですが駄目でした。各々の画像を見ると分かりますが、縦や横に切り取って左右、あるいは上下に入れ換えたような画像になっています。縦、横に不自然な線で色が変わっているところが切り口です。どうやっても駄目で、私の知識、技術では分かりませんでした。

(2)今までの個別blit方式
  今までの方式(画像ファイルを個別にblitで画面に出力する方式)で、処理をきちんと作成しました。

-----これを画像枚数分ループさせる------------------------
self.canvas.blit(self.disp_img_list[i], target=(pos_x,pos_y), \
                                 source=((0,0), self.disp_img_list[i].size))
--------------------------------------------------------

Scre000042b Scre000041b

 左の画像のとおりうまくいきました。(1)の画像と同じ画像があるので比較すると、(1)の画像のおかしなところが分かります。合わせて、画像処理中の画面を右のように変更しました。今までは「画像処理中」だけ表示していましたが、処理枚数とファイル名を表示するようにしました。

(3)QVGA画面(240*320)機種への対応
  今まではNokia 5800XMやE7-00などの、360*640ピクセルの画面の機種を対象としていました。上下左右の幅の数値を決めうちしていました。なので、QVGA画面の機種でも動きはするものの、表示される画像がはみ出したりしてしまった訳です。今回の改造のついでに、QVGA画面のサイズ数値にも対応させました。

Ssce0725a(E52での表示)
 

 これで、やっと対策できました。(1)の方式で随分と足踏みしていましたが、何とかなって、ほっとしました。

例によって、「Pythonスクリプト雑記」 の
        「13. 5800 XM 用画像一覧アプリ PyMyViewer」を更新しました。
モジュールもそちらに載せました。
 

|

« 本日の水無川沿いの桜、満開かな (2017-04-07) | トップページ | 今年の桜は、もろに雨の中だなあ »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/65100306

この記事へのトラックバック一覧です: Python:サムネイル画像で一覧する PyMyViewer を更新した V003_0:

« 本日の水無川沿いの桜、満開かな (2017-04-07) | トップページ | 今年の桜は、もろに雨の中だなあ »