ColdFusion8で簡単画像処理
先日、ColdFusion8プロフェッショナルガイドっていう本を買ったので、せっかくなのでちょっと読んで、ColdFusionってものがどんなものなのかを試してみました。
このColdFusionってのはサーバーサイドの言語でPHPの存在に近い感じです(HTMLタグに混ざって書くことができる)
こんな感じ
http://moeten.info/flex/etc/20080514_coldfusion/test.htm
ColdFusionの魅力は長くなりがちなプログラムがタグによりとても短くできます。
とあるページで、Javaでは100行かかるものがColdFusionでは10行って言っているくらいです。
簡単な画像処理ならこんな感じに書くことができます。
<cfset sourceImage = ExpandPath("haruhi.jpg")> <cfset myImage = ImageRead(sourceImage)> <cfset ImageGrayScale(myImage)> <cfimage action="WriteToBrowser" source="#myImage#">
これだけで画像がグレースケールになります。
開発はDeamweaverが対応しているので便利です。
こんな感じにHTMLタグとCFタグを混ぜて書くことができます。
参考にした本
- 作者: 株式会社エスアイヤ,河野俊之
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/04/22
- メディア: 単行本(ソフトカバー)
- クリック: 6回
- この商品を含むブログ (3件) を見る
AIRでの事例もあるので眺めるだけでもお得でっす。
基本的にはColdFusionで何ができるかが解説されてます。
DBへのアクセスとPDFの作成が便利。
#画像処理なお話はないよ\(゜ロ\)(/ロ゜)/
ちょっと長いですが、ColdFusionのソースです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- TemplateBeginEditable name="doctitle" --> <title>test</title> <!-- TemplateEndEditable --> <!-- TemplateBeginEditable name="head" --> <!-- TemplateEndEditable --> <!--- Image Captcha ---> <h2>Captcha for "ColdFusion 8"</h2> <cfimage action="captcha" height="60" text ="ColdFusion 8" width="340" difficulty="high"> <!--- Source Image ---> <cfset sourceImage = ExpandPath("haruhi.jpg")> <h2>Original Image</h2> <cfimage action="WriteToBrowser" source = "#sourceImage#"> <h2>Resized Image</h2> <cfimage action="Resize" source = "#sourceImage#" height="70%" width="70%" name="imgVar"> <cfimage action="WriteToBrowser" source = "#imgVar#" > <h2>Rotated Image</h2> <cfimage action = "rotate" source = "#sourceImage#" angle = "40" name="imgVar"> <cfimage action="WriteToBrowser" source="#imgVar#"> <h2>Draw Line</h2> <cfset myImage=ImageNew("",250,250)> <cfset ImageSetDrawingColor(myImage,"cyan")> <cfset ImageSetAntialiasing(myImage,"on")> <cfset x = ArrayNew(1)> <cfset y = ArrayNew(1)> <cfset x[1] = "100"> <cfset x[2] = "50"> <cfset x[3] = "200"> <cfset x[4] = "100"> <cfset y[1] = "50"> <cfset y[2] = "100"> <cfset y[3] = "100"> <cfset y[4] = "200"> <cfset ImageDrawLines(myImage,x,y)> <cfimage source=#myImage# action="writeToBrowser"> <h2>Draw Point</h2> <cfset myImage=ImageNew("",200,200)> <cfset ImageSetDrawingColor(myImage,"orange")> <cfset ImageSetAntialiasing(myImage,"on")> <cfset attr = StructNew()> <cfset attr.width = 10> <cfset ImageSetDrawingStroke(myImage,attr)> <cfset ImageDrawPoint(myImage,100,100)> <cfimage source="#myImage#" action="writeToBrowser"> <h2>Add Border</h2> <cfset sourceImage = ExpandPath("haruhi.jpg")> <cfset myImage = ImageRead(sourceImage)> <cfset ImageAddBorder(myImage,3,"red")> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Blur</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageBlur(myImage,5)> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Crop</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageCrop(myImage,25,25,200,150)> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Draw Circle</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetDrawingColor(myImage,"##ff0000")> <cfset ImageDrawArc(myImage,10,10,215,350,0,180,"no")> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Draw Rect</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetDrawingColor(myImage,"##999999")> <cfset ImageDrawBeveledRect(myImage,45,30,165,140,"yes","yes")> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Draw Path Line</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetDrawingColor(myImage,"green")> <cfset ImageDrawCubicCurve(myImage,120,380,5,15,380,28,32,56)> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Draw</h2> <cfset myImage=ImageNew("",200,110)> <cfset ImageSetDrawingColor(myImage,"green")> <cfset ImageSetAntialiasing(myImage,"on")> <cfset ImageDrawOval(myImage,5,5,190,100,"yes")> <cfimage source="#myImage#" action="writeToBrowser"> <h2>Draw</h2> <cfset myImage=ImageNew("",201,201)> <cfset ImageSetDrawingColor(myImage,"red")> <cfset ImageSetAntialiasing(myImage,"on")> <cfset attr=StructNew()> <cfset attr.width = 10> <cfset ImageSetDrawingStroke(myImage,attr)> <cfset ImageDrawLine(myImage,40,40,165,165)> <cfset ImageDrawOval(myImage,5,5,190,190)> <cfimage source="#myImage#" action="writeToBrowser"> <h2>Flip</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetAntialiasing(myImage,"on")> <cfset ImageFlip(myImage,"270")> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Gray</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageGrayScale(myImage)> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Image Info</h2> <cfset myImage = ImageRead(sourceImage)> <Cfdump var="#ImageInfo(myImage)#"> <h2>Negate</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageNegative(myImage)> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Marge</h2> <cfset overlayImage = ExpandPath("rakisuta.jpg")> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetAntialiasing(myImage,"on")> <cfset myImage2 = ImageRead(overlayImage)> <cfimage action="WriteToBrowser" source="#myImage#"> <h2>Sharpen</h2> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSharpen(myImage,2)> <cfset ImageSetAntialiasing(myImage,"on")> <cfimage action="WriteToBrowser" source="#myImage#"> <cfset myImage = ImageRead(sourceImage)> <cfset ImageShear(myImage,1,"horizontal")> <cfset ImageSetAntialiasing(myImage,"on")> <cfimage action="WriteToBrowser" source="#myImage#"> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetAntialiasing(myImage,"on")> <cfset ImageShearDrawingAxis(myImage,0.5,0.5)> <cfset ImageSetDrawingColor(myImage,"blue")> <cfset ImageDrawRect(myImage,45,15,75,75,"yes")> <cfset ImageSetAntialiasing(myImage,"on")> <cfimage action="WriteToBrowser" source="#myImage#"> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetAntialiasing(myImage,"on")> <cfset ImageTranslate(myImage,50,10)> <cfset ImageSetAntialiasing(myImage,"on")> <cfimage action="WriteToBrowser" source="#myImage#"> <cfset myImage = ImageRead(sourceImage)> <cfset ImageSetAntialiasing(myImage,"on")> <cfset ImageTranslateDrawingAxis(myImage,100,20)> <cfset ImageSetDrawingColor(myImage,"blue")> <cfset ImageDrawRect(myImage,50,60,40,50,"yes")> <cfset ImageSetAntialiasing(myImage,"on")> <cfimage action="WriteToBrowser" source="#myImage#"> </head> <body> </body> </html>