diff --git a/public/ttf/bebas/BEBAS___.TTF b/public/ttf/bebas/BEBAS___.TTF new file mode 100644 index 00000000..eaff4866 Binary files /dev/null and b/public/ttf/bebas/BEBAS___.TTF differ diff --git a/public/ttf/bebas/Read me japanese.txt b/public/ttf/bebas/Read me japanese.txt new file mode 100644 index 00000000..f428f2f6 --- /dev/null +++ b/public/ttf/bebas/Read me japanese.txt @@ -0,0 +1,22 @@ +フォントの著作権はBagel&Co.Type Foundry(http://homepage.mac.com/bird2/)にあります。 + +ここで配布しているフォントは個人使用・商業使用を問わず、無料でご利用可能です。 + +使用に際しては次のリストに従って下さると喜びます。(義務ではありません) + +* メールなどで連絡を下さい。 +* Bagel & Co.(http://homepage.mac.com/bird2/)にリンクして下さい。 +* 使用した作品のサンプル(画像など)をお送りください。 +* 工業製品など商業使用の際は商品をひとつ下さい。 +* "Bagel & Co."とクレジットを入れてください + +普段よく使う文字のみ作成致しましたので、特殊な記号は含まれていません。 +基本的にwinTTおよびmacTTを用意していますが、すべてのフォントではありません。 +必要に応じてコンバータ等ご利用の上変換して構いません。ただし変換により作成されたフォントの著作権はBagel & Co.にあり、使用に際しては上記の通りとします。 + +なお、これらのフォントの使用による如何なる損害についても私は責任を負わないものとします。 + + +Ryoichi Tsunekawa +Bagel & Co. +bird2@mac.com \ No newline at end of file diff --git a/public/ttf/bebas/Read me.txt b/public/ttf/bebas/Read me.txt new file mode 100644 index 00000000..4db4d3de --- /dev/null +++ b/public/ttf/bebas/Read me.txt @@ -0,0 +1,18 @@ +All fonts copyright Bagel&Co.Type Foundry(http://homepage.mac.com/bird2/) + +This is a freeware typeface. This means that you can use it on your commercial or non-commercial works for free. + +But here is a list of things you could do, Only if you want to: + +* Mail me about your works +* Link http://d.hatena.ne.jp/banbino2/ +* Send me a sample of the work you did using my typeface +* Mail me some print material you did using my typeface +* Credit "Bagel & Co."on your work +* Smile + +to contact bird2@mac.com in JAPAN + + +Ryoichi Tsunekawa +Bagel & Co. \ No newline at end of file diff --git a/src/Intervention/Image/Image.php b/src/Intervention/Image/Image.php index 25316175..1e747d33 100644 --- a/src/Intervention/Image/Image.php +++ b/src/Intervention/Image/Image.php @@ -311,12 +311,18 @@ class Image return $this; } - - public function text($text, $pos_x = 0, $pos_y = 0, $size = 16, $color = '000000', $fontfile = null, $angle = 0) + public function text($text, $pos_x = 0, $pos_y = 0, $angle = 0, $size = 16, $color = '000000', $fontfile = null) { - $fontfile = is_null($fontfile) ? 'public/ttf/bebas/BEBAS___.TTF' : $fontfile; - imagettftext($this->resource, $size, $angle, $pos_x, $pos_y, $this->getColor($color), $fontfile, $text); - // imagestring($this->resource, 5, $pos_x, $pos_y, $text, $color); + if (is_null($fontfile)) { + + imagestring($this->resource, $size, $pos_x, $pos_y, $text, $this->getColor($color)); + + } else { + + imagettftext($this->resource, $size, $angle, $pos_x, $pos_y, $this->getColor($color), $fontfile, $text); + + } + return $this; } @@ -406,17 +412,30 @@ class Image */ private function getColor($value) { - // $args = func_get_args(); + if (is_array($value)) { - $value = (string) $value; + list($r, $g, $b) = $value; - $color = array( - 'r' => '0x' . substr($value, 0, 2), - 'g' => '0x' . substr($value, 2, 2), - 'b' => '0x' . substr($value, 4, 2) - ); + $color = array( + 'r' => '0x' . $r, + 'g' => '0x' . $g, + 'b' => '0x' . $b + ); - return imagecolorallocate($this->resource, $color['r'], $color['g'], $color['b']); + } elseif(is_string($value) && strlen($value) == 6) { + + $color = array( + 'r' => '0x' . substr($value, 0, 2), + 'g' => '0x' . substr($value, 2, 2), + 'b' => '0x' . substr($value, 4, 2) + ); + } + + if (is_array($color)) { + return imagecolorallocate($this->resource, $color['r'], $color['g'], $color['b']); + } else { + throw new Exception("Error Processing Color"); + } } /** diff --git a/tests/ImageTest.php b/tests/ImageTest.php index 1b953620..41aa1fe8 100644 --- a/tests/ImageTest.php +++ b/tests/ImageTest.php @@ -141,6 +141,10 @@ class ImageTest extends PHPUnit_Framework_Testcase $img = $this->getTestImage(); $img = $img->text('Fox', 10, 10, 0, 16, '000000', null); $this->assertInstanceOf('Intervention\Image\Image', $img); + + $font = 'public/ttf/bebas/BEBAS___.TTF'; + $img = $img->text('Fox', 10, 10, 0, 16, '000000', $font); + $this->assertInstanceOf('Intervention\Image\Image', $img); } public function testResetImage()