PHPでドラえもんを描く
先日紹介したDmImageを使用すると色々な図形が描けます。
今回はドラえもんを描いてみたので紹介します。
ドラえもんを描画する
下記のコードでドラえもんを描画しています。
フォントはドラえもんフォントを使って描画しています。
もう少し画質を良くしたければ少し大きめに描画して、最後に画像を縮小すると綺麗に見えます。
<?php $colorBody = 0xFF0099FF; $colorLine = 0xFF003399; $colorWhite = 0xFFFFFFFF; $colorEye = 0xFF000000; $colorRed = 0xFFFF0000; $colorYellow = 0xFFFFFF00; $thickness = 3; $image = new Dm_Image(500,600,0xFFFFFFFF); $image->graphics //体 ->fillStyle($colorBody) ->lineStyle($thickness,$colorLine) ->beginLineFill() ->moveTo(260, 440) ->lineTo(260, 450) ->lineTo(360, 450) ->lineTo(360, 370) ->lineTo(400, 410) ->lineTo(440, 370) ->lineTo(360, 290) ->lineTo(140, 290) ->lineTo(60 , 370) ->lineTo(100, 410) ->lineTo(140, 370) ->lineTo(140, 450) ->lineTo(240, 450) ->lineTo(240, 440) ->endLineFill() //手 ->fillStyle($colorWhite) ->drawCircle(410, 380, 35) ->drawCircle(90 , 380, 35) //ポケット ->drawCircle(250, 330, 85) ->drawPie(250, 350, 120, 100, 0, 180) ->moveTo(190, 350) ->lineTo(310, 350) //足 ->drawRect(260, 450, 100, 29) ->drawPie(359, 465, 20, 30, -90, 90) ->drawPie(262, 465, 20, 30, 90, -90) ->drawRect(140, 450, 100, 29) ->drawPie(239, 465, 20, 30, -90, 90) ->drawPie(142, 465, 20, 30, 90, -90) //頭 ->fillStyle($colorBody) ->drawEllipse(250, 150, 350, 280) ->fillStyle($colorWhite) ->drawEllipse(250, 190, 280, 190) //目 ->drawEllipse(290, 100, 80, 90) ->drawEllipse(210, 100, 80, 90) ->fillStyle($colorEye) ->drawCircle(270, 110, 10) ->drawCircle(230, 110, 10) //鼻・口・ひげ ->fillStyle($colorRed) ->drawCircle(250, 140, 15) ->lineStyle(0) ->fillStyle($colorWhite) ->drawCircle(255, 135, 5) ->lineStyle($thickness,$colorLine) ->moveTo(250, 153) ->lineTo(250, 250) ->fillStyle(0) ->drawPie(250, 200, 160, 100, 15, 165) ->moveTo(300, 170) ->lineTo(350, 150) ->moveTo(300, 180) ->lineTo(350, 180) ->moveTo(300, 190) ->lineTo(350, 210) ->moveTo(200, 170) ->lineTo(150, 150) ->moveTo(200, 180) ->lineTo(150, 180) ->moveTo(200, 190) ->lineTo(150, 210) //首輪 ->fillStyle($colorRed) ->drawRect(141, 260, 222, 30) ->drawPie(360, 275, 20, 30, -90, 90) ->drawPie(142, 275, 20, 30, 90, -90) //鈴 ->fillStyle($colorYellow) ->drawCircle(250, 290, 20) ->moveTo(232, 280) ->lineTo(268, 280) ->moveTo(230, 285) ->lineTo(270, 285) ->moveTo(250, 300) ->lineTo(250, 310) ->drawCircle(250, 298, 5) ; $image->textGraphics ->setFontSize(70) ->setFontFile('font/doraemoji/doraemoji.ttf') //フォント ->setColor($colorLine) ->textTo(20, 580, 'ドラえもん') ; $image->display(); exit;