コンピューター

写真や画像を一括でリサイズできるrubyプログラミング

プログラミングを使って出来る事

プログラム、プログラミングという言葉を聞いた人は多いと思うのですが、具体的にどういう事をしているかという事を知っている人は意外に少ないんじゃないでしょうか。

テレビや映画の影響で、かっこ良くアニメーションする画面に向かって、ワインを飲みながらおしゃれダンディーな男がパスワードを解析する。みたいな事をイメージする人もいるかも知れませんね。

まあそういう世界も実際にあるのかも知れませんが、僕のプログラミングの世界はもっとシンプルというか地味です。

実際の画面

実際の画面

写真をそれぞれ適当なサイズに縮小するプログラムを書きました。

最近、写真の縮小リサイズをするケースが多くなってしまいました。

というのもこのブログでは横1024ピクセルの写真を、もうひとつの写真ブログでは横写真は横1440ピクセル、縦画像は横1280ピクセルの写真を用意しているからです。

いくら1コマンドで縮小作業が出来るとはいえ、写真の内容と名前を見比べながらそれぞれのサイズに変更するとなると結構しんどい事になってきました。

という事でこれらの作業を自動化したいと考えました。

以下が作成したプログラム全文です。

カメラの傾きを記録しているExifデータがなかった

通常デジタルカメラから出力される写真データには、撮影した時のカメラの傾きの情報が記録されています。

これが使えれば今回みたいな長いプログラムを書く必要はなかったんですが、デジタルカメラの写真データを現像する際にどうやら失われてしまうらしく。

仕方がないので、画像の縦横の画素数で判断しようと思いました。

プログラムがやっている事をざっと解説

2行目から37行目までで、写真の名前と画像の縦横比を対で保管してPictureというデータを作っています。

39行目から74行目で、上記のPictureというデータを作るための前準備を行っています。

具体的にいうと、元々のプログラムから得られる画像の情報は

IMG_4717.jpg 5616x3744

というような形なので、名前とサイズをそれぞれ必要な部分のみ抜き取ってPictureデータに格納する準備をしているという事です。

名前:IMG_4717.jpg
サイズX:5616
サイズY:3744

といった具合にですね。

76行目から最後までは、上記に作ったプログラムを目次的に実行する場面になります。

具体的には、1024 、1280 、1440というディレクトリ(フォルダ)を作って、縦画像は1280ピクセルに、横画像は1440ピクセルに、これらを含めた全ての画像を1024ピクセルに変換してそれぞれのディレクトリに格納しています。

これにて、完成です。

1時間半くらいかかりました

傾き情報のあるなしの確認に少々時間を費やして、書き上がるまでにだいたい1時間半くらいかかりました。

しかしこれまで、全ての画像を目でみて、それぞれ縮小して、正しいディレクトリに保存する。とやっていた作業がこれからは1コマンドで出来るようになりました。

おそらく、このプログラムを書くのに要した1時間半はすぐに回収する事ができると思います。

プログラム化する事の本当の威力

このプログラムがあれば、たとえ100個のディレクトリにそれぞれ1000枚の画像が縦横混合で入っていたとしても、ちょっとだけ手を加えて実行してやればパソコンが勝手にそれぞれのサイズに正しく間違いなく変換してくれます。

写真の数が1万になっても2万になっても同様です。たった1つのコマンドを実行して待つだけ。

これが決められた作業をコンピューターによってプログラム化してしまう事の一番大きな利点です。

加えて、パソコンで出来る作業って基本的には全てプログラム化する事が可能なんですね。

普段パソコンを使ってやる事が多い!特に繰り返しの作業がとっても多い!!

という人は是非今からでもプログラミングの技術を学ばれる事をおすすめしますよ!

本日もG線上のきりんを訪れてくださってありがとうございます。

それではまた。

 

この記事が気に入ったらいいね!しよう
🍀

更新情報をお届けします

関連記事

  1. コンピューター

    子供たちに通信端末を持たせることについての功罪

    彼女の妹へのプレゼント先日、彼女の妹が11歳の誕生日を迎えると…

  2. コンピューター

    歳をとってからの方が挑戦しやすいと思う理由。まだ間に合う、ちょっと未来の話。

    人間、結局のところ強みも弱みもないと思うんですよね。どんな弱みも強…

  3. Mac

    知っとかないと損しちゃう。今、パソコンは中古で買うべき3つの理由。

    表題のとおり、本日ノートパソコンを新しく購入しました。これまで使っ…

  4. コンピューター

    現役エンジニアが「プログラミングを学習するならMacが有利」と感じる理由

    この記事は、これからプログラミングの学習をやるためにはWindow…

  5. コンピューター

    電子ペーパーの利点、液晶端末との違い。Kindle Paper Whiteが素敵だったから

    先日のもくもく会に参加されていた方が電子ペーパーを持ってこられてい…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

スポンサーリンク

  1. 日記

    例えばあなたが署名を求められたとき、無意識の中で起こる「知っておくべきこと」
  2. 未来

    自動運転車の普及した未来のメリットを5つ考えた
  3. 日記

    ニッポンのジレンマ。自動化される社会にベーシックインカムが必要な理由。
  4. 知識は転ばぬ先の杖。生涯私たちに寄り添い、私たちを助ける。
  5. コンピューター

    “仮想通貨の価格:0.06BTC”って分かんないから簡単…
PAGE TOP