为 Laravel 中的图像添加水印
Adding watermark to images in Laravel
我正在尝试向图像添加文本(作为水印)。我正在使用 Image/Intervention 包。文字显示,但我希望它位于图像的右上角,我还希望增加尺寸。文字目前在左上角,尺寸非常小。
这是我的代码
if($request->hasFile('file')) {
foreach ($request->file('file') as $photo) {
$file = $photo;
$img = Image::make($file);
$img->text('12345 ', 120, 100, function($font) {
$font->size(45);
$font->color('#e1e1e1');
$font->align('center');
$font->valign('top');
});
$img->save(public_path('images/hardik3.jpg'));
}
}
我该如何解决这个问题?
Font sizing is only available if a font file is set and will be ignored otherwise. Default: 12
因此您必须像下面的示例一样指定自定义字体:
$img->text('foo', 0, 0, function($font) {
$font->file('foo/bar.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
更新
文本对齐方式与文本框的大小有关,但定位由 x 和 y 坐标(text 方法的第 2 个和第 3 个参数)给出。要将文本放在右上角,您可以这样做:
$img->text('foo', $img->width(), 100, function($font) {
$font->file('foo/bar.ttf');
$font->size(24);
$font->color('#e1e1e1');
$font->align('right');
$font->valign('top');
});
text
函数接受插入文本位置的X和Y坐标。由于您使用了坐标 120 和 100,因此文本被打印到显示的位置。
尝试以下操作:
if($request->hasFile('file')) {
foreach ($request->file('file') as $photo) {
$file = $photo;
$img = Image::make($file);
$img->text('12345 ', $img->width() - 120, 100, function($font) {
$font->size(45);
$font->color('#e1e1e1');
$font->align('center');
$font->valign('top');
});
$img->save(public_path('images/hardik3.jpg'));
}
}
我正在尝试向图像添加文本(作为水印)。我正在使用 Image/Intervention 包。文字显示,但我希望它位于图像的右上角,我还希望增加尺寸。文字目前在左上角,尺寸非常小。
这是我的代码
if($request->hasFile('file')) {
foreach ($request->file('file') as $photo) {
$file = $photo;
$img = Image::make($file);
$img->text('12345 ', 120, 100, function($font) {
$font->size(45);
$font->color('#e1e1e1');
$font->align('center');
$font->valign('top');
});
$img->save(public_path('images/hardik3.jpg'));
}
}
我该如何解决这个问题?
Font sizing is only available if a font file is set and will be ignored otherwise. Default: 12
因此您必须像下面的示例一样指定自定义字体:
$img->text('foo', 0, 0, function($font) {
$font->file('foo/bar.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
更新
文本对齐方式与文本框的大小有关,但定位由 x 和 y 坐标(text 方法的第 2 个和第 3 个参数)给出。要将文本放在右上角,您可以这样做:
$img->text('foo', $img->width(), 100, function($font) {
$font->file('foo/bar.ttf');
$font->size(24);
$font->color('#e1e1e1');
$font->align('right');
$font->valign('top');
});
text
函数接受插入文本位置的X和Y坐标。由于您使用了坐标 120 和 100,因此文本被打印到显示的位置。
尝试以下操作:
if($request->hasFile('file')) {
foreach ($request->file('file') as $photo) {
$file = $photo;
$img = Image::make($file);
$img->text('12345 ', $img->width() - 120, 100, function($font) {
$font->size(45);
$font->color('#e1e1e1');
$font->align('center');
$font->valign('top');
});
$img->save(public_path('images/hardik3.jpg'));
}
}