低速回線や、通信料低減のため。Cloudinary APIを用いてpngを予め圧縮してダウンロードする方法についての考察

今回は、
低速回線や、通信料低減のため。Cloudinary APIを用いて
pngを予め圧縮してダウンロードする方法についての
考察記事を紹介させていただきたいと思います。


まずは、こちらに
何も手を付けていないpng画像を用意させていただきました。
237_trim - コピー
http://blog-imgs-93.fc2.com/o/y/k/oyk3865b/201605130749198fc.png

※元の画像サイズは、
1077 x 1800 で、
740 KB (758,733 バイト)です。


さて、このまま、
ネット回線を利用してDLすると、

例えば、
最大速度が60kB/sという低速回線の私の環境では、
表示までに時間がかかってしまいます。



そこで。

ネットを徘徊していて出会いました
『Cloudinary - Cloud image service, upload, storage & CDN』
http://cloudinary.com/


の、APIサービスの辞書を拝見して
http://cloudinary.com/documentation/image_transformation_reference


予めpngのサイズを減らして、
より高速に画像を表示させていただこうと考えました。





まずは。

「fl_png8」オプションを利用して
8ビットカラー(256色)に、色数を落としました。
237_trim - コピー
http://res.cloudinary.com/demo/image/fetch/fl_png8/http://blog-imgs-93.fc2.com/o/y/k/oyk3865b/201605130749198fc.png

※この画像サイズは、
1077 x 1800 で、
233 KB (238,938 バイト)です。



加えて。

「h_1024」オプションを利用して
高さを、1024ピクセルに縮小しました。
237_trim - コピー
http://res.cloudinary.com/demo/image/fetch/fl_png8,h_1024/http://blog-imgs-93.fc2.com/o/y/k/oyk3865b/201605130749198fc.png

※この画像サイズは、
613 x 1024 で、
88.1 KB (90,304 バイト)です。


こうして、
元の画像の12%程度まで
画像の容量を、減らすことができました。






以上の操作を

Visual Basic 2015にて、コードにしました。

事前に、対象となるファイルのバイナリを
先頭から24バイトのみ読み取り。
snapshot231337703.jpg


png画像だった場合は、
256色に、色数を落とし

さらに、

『PNGのチャンク(IHDR)』のページ様を参考に
http://www.setsuki.com/hsp/ext/chunk/IHDR.htm
ヘッダーより、指定より大きな画像の場合は
予め指定サイズに、縮小して落とすこととしています。


(※&H435=1077,&H708=1800)



これを発展させると、予めpngを圧縮して落とせる
画像ダウンローダを、作成することができます。

スポンサーサイト

テーマ : プログラミング - ジャンル : コンピュータ

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

プロフィール





最新記事
最新コメント
最新トラックバック



月別アーカイブ
カテゴリ