11月から駒沢大学のCTCに派遣されて、
某A空輸の次期予約サイトのMonkey Testをやらされているんですが、
screen shotとかuploadするのに、何故か20kbという制限があります。
そんなの、Gimpとかフリーソフト使えば簡単なんですが、
入れさせてくれないんですよね。
なので、screen shotを撮るにはALT + PrintScreen、
編集はMicro$oft謹製のペイント、
pngでsave出来るようになっただけマシではありますが、
64bit colorでしか保存できないので、
sizeが無駄に大きくなっちゃって、
20kbなんてすぐ超えちゃうんですよね。
ImageMagick使えばそんなの、
convert infile.png -colors 256 outfile.png
で済むのに。
仕方無いので、縮小したりしていたんですが、 縮小すると何が書いてあるかわからないし。 そうだ、Web Applicationならinstallしなくてもいい、 と気付いたんですけど、 巷間のserviceに外部秘の画像を上げるのは気が引けたので、 なら自分で作ろうと。
オンプレミスなserverも持ってますが、
イマドキじゃないのと、
よく見たらオンプレミスserverにはImageMagickも入ってないですし。
まぁそれはapt-get install
一発で行けるからいいんですけど、
shell scriptでconvertすればいいから、
cgiでちゃちゃっと書いちゃおう、と思ったんですが。
POSTされたfile dataをparseするのが面倒かな、
と思ったのと、あと443が開いてないんですね。
なので、herokuに上げよう、と。
そうなるとrubyかな、と思ったので、調べてやってみました。
herokuの公式ruby用sampleを元に作れそう、だったので、 調べて、sinatra使ってるってわかって、 あとImageMagickはherokuに元々入ってて、 rubyはrmagicを使えるらしいということで、やりました。
cf.
- Heroku導入メモ
- ruby sample
- あと
$ build
?
1 2 |
|
rmagicを使うには、以下の作業が必要でした。
- Gemfileに
gem 'rmagick', '~>2.15.4', :require => 'RMagick'
- c9上で
sudo apt-get install imagemagick libmagick++-dev
POSTされたfile dataの取得は、
1 2 |
|
image dataの取得は、
1
|
|
fileとしてのreturnは、
1 2 |
|
image dataのbinary data取り出しは、
1
|
|
256色への減色は、
1
|
|
とするだけで8bit colorで保存されます。
最終的には、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
あぁ、erbってのも初めて使いました。 ここへpostするためのplain htmlが書いてあります。