みなさん、お久しぶりです。白虎21です。
皆さんは「P1×1v Faиb0×」や「Faиt1a」、「Patre0и」などをご活用されていますでしょうか?
絵師さんをサポートしている場合、画像を見返りとして受け取ることが多いかと思います。
その場合、 画像をZIPで圧縮されたデータとして受け取ることがあるかと思います。
その圧縮されたデータをスマホで見ることがあるかと思いますが、画像サイズが大きくて読み込みに時間がかかったりすることがあるのではないかと思います。
そもそもにスマホでは画素数が多すぎても意味がないと思うところがあります。
そのため、ZIPで圧縮された画像を新たなファイルなどを生成することなく、画像のリサイズを行うことができるスクリプトを書きました。
https://github.com/WhiteTiger-21/python_resize_zip_images
このサイトの「zip.py」が上記の内容が可能なスクリプトです。
他のファイルは開発段階の副産物です。
利用方法は該当のZipファイルが存在するところでPowerShellやターミナルを開いて、pythonを実行できる状態にしてください。
そして、次のようなコマンドを入力します。
python zip.py 「任意のファイル」
具体例として、「Sample.zip」のイメージをリサイズしたい場合は、次のようになります。
python zip.py Sample.zip
ただし、このスクリプトが利用するにはいくつかの条件があります。
- 第一に実行環境である「python」と開発するにあたって使用したパッケージファイルが入っていること。
pythonが入っていなければ、pythonをインストールする必要がありますが、ただ単にこのスクリプトをダウンロードして、実行したいだけであれば、マイクロソフトの「ストア」アプリから「python」をダウンロードしてください。
マイクロソフトストアのPythonのダウンロードサイト - MITライセンスに同意する。
端的に言うと何が起こっても一切の責任を負いません。
必ずバックアップを取ってください。
そもそもスマホ向けに画像を圧縮するようなツールなので、劣化なしの元のデータをしっかり取っておいてください。
- gifファイルが含まれていないこと。
gifファイルは連番によりアニメーションのようになっているものがあります。
それに対する対処を行っていないためです。 - ディレクトリが入れ子構造になっていないこと。
具体的には以下のようなディレクトリ構造となっていることが好ましいです。
Sample |-- 01.png |-- 02.png |-- 03.png |-- 04.png |-- 05.png |-- 06.png |-- 07.png |-- 08.png `-- 09.png
具体例として問題のない例は、以下のように、完全なマトリョーシカ状態。
他、二分木の状態になっていても、ファイル名が異なる状態。
上記の2つ所状態に値するものは問題ありません。Sample |-- 01.png |-- 02.png |-- 03.png |-- 04.png |-- 05.png |-- 06.png |-- 07.png |-- 08.png |-- 09.png `-- Inside01 |-- INSIDE_01.png |-- INSIDE_02.png |-- INSIDE_03.png |-- INSIDE_04.png |-- INSIDE_05.png |-- INSIDE_06.png |-- INSIDE_07.png |-- INSIDE_08.png `-- INSIDE_09.png
しかし、以下のように、二分木状態であり、なおかつ、ファイル名が同じ場合、ファイルの上書きがされ、Inside03の中身のみが残ります。
Sample |-- 01.png |-- 02.png |-- 03.png |-- 04.png |-- 05.png |-- 06.png |-- 07.png |-- 08.png |-- 09.png |-- Inside01 | |-- 01.png | |-- 02.png | |-- 03.png | |-- 04.png | |-- 05.png | |-- 06.png | |-- 07.png | |-- 08.png | `-- 09.png |-- Inside02 | |-- 01.png | |-- 02.png | |-- 03.png | |-- 04.png | |-- 05.png | |-- 06.png | |-- 07.png | |-- 08.png | `-- 09.png `-- Inside03 |-- 01.png |-- 02.png |-- 03.png |-- 04.png |-- 05.png |-- 06.png |-- 07.png |-- 08.png `-- 09.png
以上が利用するにあたっての利用条件です。
今回の記事は以上となります。
皆さんのお役に立つスクリプトとなれば幸いです。
また、改善点がございましたら、githubのREADME.mdにも記載している通り、Twitterにまでご連絡ください。