Jenkinsの場合はWORKSPACEという環境変数に自動でパスが設定されますよね。本dockerイメージもWORKSPACEという環境変数を設定するようにしたので、Jenkinsフレンドリーだと思います。(多分)もし対象の画像パスを変えたい場合は、以下のように任意のパスに書き換える事ができます。WORKSPACE=/tmp/images拡張子毎に圧縮品質を調整したい場合は、settings.txtを編集して下さい。SUPPORT_EXTENSIONS=.jpg,.jpegDEFAULT_IMAGE_QUALITY=80JPEG=70GIF=70↑のJPEG・GIFといった部分が、フォーマット毎の圧縮品質値で、これはPillow-SIMDに完全に依存しています。ちなみに画像変換されたファイルは上書きされますのでご注意下さい。CIで使う事を想定しているので、上書きにしちゃってます。ログ↓こんな感じに標準出力されます。画像が存在するフォルダに対して、画像変換をかけてみました。PillowとPillow-SIMDはどう違いが出るでしょうか。installする際にpillowとするか、pillow-simdとするか、で切り分けています。いうことで、同じ条件でそれぞれ5回づつ変換してかかった時間を計測してみました。Pillow1回目25.66s2回目29.70s3回目27.16s4回目28.62s5回目28.30sPillow-SIMD1回目27.79s2回目27.79s3回目27.70s4回目27.85s5回目30.54sんんん?対して変わらない???AVX2に対応していないCPUだからですかね。macで画像変換を試しても、全くエラーが起きなかったのですが、Linuxサーバ上のDockerで試すと、以下のエラーが発生しました。availableなんかファイルディスクリプタが足りないとの事です。ホストOSはAmazonLinuxで、ファイルディスクリプタは65536にしてあります。なると足りていないのはDockerのコンテナ側ですね。いう事で以下のように設定すると、コンテナ内のファイルディスクリプタを増やす事ができ、無事、ファイルディスクリプタ不足が起きなくなりました。拡張子偽装が結構見つかるという点です。ファイル名が「xxx.png」だったとします。Pillowで画像フォーマットを確認してみると「JPEG」と表示されます。拡張子というものはいくらでも偽装して嘘を付けるのですが、以外なほどポロポロ見つかります。困るのがPNGが.png以外の拡張子に偽装されているケースです。pngは可逆圧縮ですが、圧縮をかけてもほとんどファイルサイズは変わりません。ほとんど圧縮できないのに、圧縮にはJPEGよりも数倍時間を要します。可逆圧縮はコストパフォーマンスは最悪なので、可能な限り可逆圧縮の圧縮は避けるべきです。可逆圧縮フォーマットを、非可逆圧縮の拡張子に偽装しているケースは非常にいやらしいですね。今の実装だと偽装拡張子を無視する形にしていますが、pngの圧縮が混入してしまうと、圧縮速度が段違いに遅くなってしまうので、偽装されている場合は処理をスキップしようかな〜?なんて考えてます。jpgは0.1〜0.3秒程度で変換できるのに、pngだと1〜10秒かかる事もあるので、少しの混入で相当遅くなってしまうのです。会社の業務プロジェクトのアセット内ですら偽装拡張子がポロポロでてくるので、ネットから拾った壁紙のような画像群に対して変換を書けてしまうと、偽装pngのせいで処理速度が大幅劣化しそうです。v3.6.3は、型アノテーションというものがあるのですね。微妙にkotlinと記法が似てて、v2系の頃とは大分様変わりしていて、ちょっとビックリしました。昔は型が無い事を売りにしていたと思うのですが、今となっては真逆ですね。どの言語も後付で型を導入したり、最初から型有りきで登場したり。後付で型を導入するケースの場合、やはりIDEとの連携が弱い(最初から型があるものと比較して)ので、強力な連携をしてくれるIDEを使わないと、逆に書きにくくなってしまうジレンマがあるような、無いような。今回Pythonをちょっと触ったわけですが、競合である?Rubyは私はさっぱりです。Ruby系のツール、例えばCapistrano・Chef等は全部敬遠しており、唯一使っているのがVagrantでVagrantfileをいじる時くらいでしょうか。完全に好き嫌いの話ですが、私はrubyって好きではないし、好きになれないです。私は型や文法がカッチリしている方が好きなので、「色々な書き方ができる!」「ワンライナーでこれだけ書ける!」といったものは避けたく、一定のルールで一定の記述ができる方を好みます。いってよく触るJavaだと堅苦しいのは間違い無いので、最近は専らkotlinかtypescript辺りを好んで使っています。この辺は型がありつつ推論で緩く記述する事もできて、ちょうどいい感じです。週間)昔は業務系SIer、今はベンチャー企業でプログラムを書いています。INFILEを実行できるようにするmacのAutomatorでhomebrewのコマンドをFinderのサービスから実行できるようにするReactオススメ書籍React自体の基礎、AtomicDesignの適用、CSSの運用手法の歴史的な経緯とメリットデメリット、Reduxの基礎、redux-sagaによる非同期処理、サーバサイドレンダリング、テスト、lint、を学ぶ事ができます。単行本(ソフトカバー)この商品を含むブログを見るAngularオススメ書籍Angularを学ぶなら絶対以下がおすすめです!バインディング、ディレクティブ、パイプ、フォーム、コンポーネント、サービス、ルーティング、httpClientによる非同期httpリクエスト、テスト、angular-cli、を非常に丁寧な説明で網羅的に解説しています。大型本この商品を含むブログを見るSEOオススメ書籍SEOを学ぶなら絶対以下がおすすめです!クローラに対して何をどうすればサイトの巡回効率・速度を上げる事ができるのか、どういったマークアップをする事が標準仕様なのか。巷に溢れる業者による経験則に基づくオレオレSEO情報は一切無く、全てGoogle等のオフィシャルな情報に基づいて何をすべきか、どんな手段があるのかを解説されています。プログラマな私が業務で行った施策が多く書かれており、プログラマ寄りで高度な内容となっており、巷のビギナー向けの曖昧な情報集とは一線を画しています。Amazonアソシエイト・プログラムの参加者です。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。