干预图像:平铺文本水印

时间:2017-04-12 05:20:42

标签: image laravel-5 intervention

我在Laravel 5.3中使用Intervention Image进行图像处理,我想将瓦片文本水印添加到图像中。

示例:enter image description here

$img = Image::make(storage_path('app'.DIRECTORY_SEPARATOR.'public'.DIRECTORY_SEPARATOR.$media->file_path));
// use callback to define details
$width = $img->width();
$height = $img->height();

        $data = $img->text($watermark, 15, 25, function($font) {
                    $font->file(public_path('../fonts/Xerox Serif Wide.ttf'));
                    $font->size(36);
                    $font->color(array(0,0,0, 0.3));
                    $font->align('center');
                    $font->valign('top');
                    $font->angle(45);
                })

但是它不起作用它会给出一个给定角度的单行,因为我希望重复文本直到它到达图像的末尾。

感谢。

1 个答案:

答案 0 :(得分:0)

我不知道你是否仍然需要它:)无论如何我做到了。 但要让用户在文本和角度之间填充填充x,y

    $x = 0;

 while ($x < $image->width()) {
       $y = 0;

       while($y < $image->height()) {

         $image->text($watermark->text_text, $x, $y, function($font) use($watermark,$colorhsva,$fontn) {
                     $font->file(public_path('fonts/'.$fontn));
                     $font->size($watermark->text_font_size);
                     $font->color($colorhsva);
                     $font->align($watermark->text_align);
                     $font->valign($watermark->text_valign);
                     $font->angle($watermark->text_angle);
                 });


             $y += $watermark->text_distanceyposition;
       }

       $x +=$watermark->text_distancexposition;
 }

而 text_text =“用户文字”

fontn =用户选择的字体

每次重复

$ watermark-&gt; text_distanceyposition = y填充表单

每次重复

$ watermark-&gt; text_distancexposition = x填充表单

colorhsva = color array RGBA;

$ watermark-&gt; text_angle =你的情况下的角度

希望它会帮助你