Iphoneで撮った写真

Iphoneは軽いので何時も散歩のお供である。カメラも付いているので写真も撮れる。そのカメラで撮った写真である。

パン工房シベールの前にある桂
広瀬川の対岸

pythonプログラムのexe化

Pythonで作ったMakeCaptionWithLogo.pyをPythonに不案内なユーザにも使えるようにexe化することにした。

  • exe化にはpyinstallerを使った。pyinstallerをインストール後にコマンドプロンプトで以下のようなコマンドを入力する:
@echo off 
pyinstaller --onefile --exclude-module numpy \
 --exclude-module ..... --exclude-module ..... \
--exclude-module ..... --exclude-module .....  \
 --noconsole --icon=TOMATO.ico MakeCaptionWithLogo.py

ここで–exclude-moduleオプションはexe化で排除しても無害なモジュールを書く。numpyは大きなモジュールでプログラムでnumpyを使っていないときには積極的に排除する。その他のオプションの説明はここにある。

これでdistフォルダにMakeCaptionWithLogo.exeができる。これがこのファイル1つで配布可能なexeファイルである。サイズは約10MB。排除オプションを外すとサイズは約30MB。排除オプションは有効であることがわかる。

  • この手の配布用のexeファイルを作成するときには仮想環境を使うのが普通らしい。そこでPythonの仮想環境で使う開発環境で述べた仕方で仮想環境を作りこの環境下でexe化を行った。インストールしたモジュールはプログラムに必要なものだけした。できるexeファイルのサイズは10MBを切るだろうと期待したが、この仮想環境下でできたexeファイルのサイズは期待に反して約15MBであった。

 

 

Pythonの仮想環境で使う開発環境

ごつい表題であるが、いつも使っているPythonのプログラミング開発環境を仮想環境でもそのまま使いたということである。

  • Python3.10.4がインストールされているwindows10にそれと同じヴァージョンのPythonの仮想環境を作る:

win10のコマンド・プロンプト(CMD)の窓で

python -m venv [環境を作成したいパス]

ここの[環境を作成したいパス]はユーザ領域で構わない。このpathの中にあるScriptsフォルダにあるactivate.batというバッチファイルをCMDの中で実行すると仮想環境が実現する。詳しくはここを参照。

  • いつもはPythonパッケージに付随して配布されているIDLEをプログラミング開発環境として使っている。この環境を仮想環境の下でも使う。インストールされたそのままではリンクが全て実環境を向いているので、それらのリンクを全て(と言っても2つ)を仮想環境に向ける。

そのために実環境を向いたIDELと別に仮想環境を向いたIDELを作る。まずインストールしたIDELのショートカットを新規につくりそれが仮想環境を向いていることを示す任意の名前する。そのプロパティを開き[リンク先]のpath2つを変更する。
変更前

"C:\.....\Python310\pythonw.exe" \ 
"C:\.....\Python310\Lib\idlelib\idle.pyw"

変更後

"C:.....\PythonEnv\MyEnv\Scripts\pythonw.exe" \
"C:.....\PythonEnv\MyEnv\Scripts\sample.pyw"

ここでsample.pywは以下を中身とするファイルでフォルダScriptsに保存したものでありIDLEが起動される時に実行される:

from idlelib.pyshell import main
main()

詳しくはここを参照のこと。

このIDELを使うことによって実環境の時とほぼ完全に同じ開発環境で仮想環境下でのPythonプログラミングができる。

スローシャッターの面白さ

いつもはプログラムモードで写真を撮っているがシャッター優先でシャッターを遅くして写真を撮ると面白い写真ができることがある。

お弁当の時間だ

これは20分の1秒で撮っものだ。足の部分がぼけていて動きが強調されてくる。

米ケ袋の滝

これは風景であるがスローシャッターにすることで滝の水の存在感が増す。

最後の例は動いている物体(車など)を追ってスローシャッターで写真を撮ると物体以外は線状にぼけ、物体に運動の疾走感がでる。

仙台ループルバス

スローシャッターの写真で非日常的な写真が撮れる。

tkinterでcaption自動作成

必要があって展覧会に展示する作品に添付するcaptionを自動生成するプログラムを作ってみた。問題はtkinterで作った画面を画像ファイルにして印刷する工程である。

tkinterのcanvasウイジェット上にcaptionのイメージを作成し、このイメージを画像ファイルとして保存する。canvasウイジェットには自身が作ったイメージをpostscriptファイルにする機能があるが、日本語に取り扱いができない。そこで試みたことは画面の部分スクリーンショットで、canvasの部分を切り取って画像ファイルとして保存する。この方法を使った。

この部分の処理はPILモジュールのimagegrabとwin32guiを使った。win32guiでcanvasを含むwindowを特定し、imagegrabでその窓のcanvas部分だけを切る取ることをした。

作成例

作成例(写真L版サイズ)

ユーザインタフェイスは以下のような感じ:

上段:データ入力フォーム;下段:カンヴァス

全体のプログラムはここで見れる。

アキ・カウリスマキ監督の映画

「過去のない男」、浮き雲」、「希望のかなた」、「街のあかり」、「コントラクト キラー」とフィンランドのアキ・カウリスマキ監督の映画を観た。

「過去のない男」、浮き雲」、「街のあかり」はこの監督の「敗者三部作」と呼ばれているもの。

様々な不幸な出来事があり社会的敗者になってしまった主人公たちがなんとかして明かりを見出そうとす姿を描いた作品である。不条理な社会を淡々と描いているが、それらに遭遇した人間たちの悪戦苦闘に寄り添う視点もある。