返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP计算字符串真正的宽度和高度像素(图片加文字水印示例)
  • 592
分享到

PHP计算字符串真正的宽度和高度像素(图片加文字水印示例)

PHP计算字符串宽度和高度PHP图片加文字水印 2023-02-25 11:02:18 592人浏览 安东尼
摘要

PHP计算字符串用strlen()只能得到字符串长度,不是宽高像素,使用到了php函数ImageTTFBBox(),就可以根据字体的大小和所用字体计算字符串的宽高像素。 ImageT

PHP计算字符串用strlen()只能得到字符串长度,不是宽高像素,使用到了php函数ImageTTFBBox(),就可以根据字体的大小和所用字体计算字符串的宽高像素。

ImageTTFBBox函数介绍

imagettfbbox() 计算并返回一个包围着 TrueType 文本范围的虚拟方框的像素大小。

语法

imagettfbbox ( float $size , float $angle , string $fontfile , string $text )

参数

参数必需的描述
size像素单位的字体大小。
angletext 将被度量的角度大小。
fontfileTrueType 字体文件的文件名(可以是 URL)。根据 PHP 所使用的 GD 库版本,可能尝试搜索那些不是以 '/' 开头的文件名并加上 '.ttf' 的后缀并搜索库定义的字体路径。
text要度量的字符串。

返回值

返回一个含有 8 个单元的数组表示了文本外框的四个角:

  • 0 左下角 X 位置
  • 1 左下角 Y 位置
  • 2 右下角 X 位置
  • 3 右下角 Y 位置
  • 4 右上角 X 位置
  • 5 右上角 Y 位置
  • 6 左上角 X 位置
  • 7 左上角 Y 位置

这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。

本函数同时需要 GD 库和 FreeType 库。

 图片加文字水印示例

<?php
//指定图片路径
$img = trim($_POST['img']);

//获取图片信息
$info = getimagesize($img);

//获取图片扩展名
$type = image_type_to_extension($info[2],false);

//动态的把图片导入内存中
$fun = "imagecreatefrom{$type}";
$image = $fun($img);

//指定字体类型
$font = '../ttfs/pingfang.ttf';

//指定字体颜色及透明度
$trans = intval($_POST['trans']); //水印字体的透明度
$color =imagecolorallocatealpha($image,255,255,0,$trans);

//指定字体内容及大小
$content= trim($_POST['content']);
$size= intval($_POST['size']);

//计算字符串宽高
$pos =imagettfbbox($size,0,$font, $content);

//字符串所占宽度
$str_width = $pos[2] -$pos[0];

//字符串所占高度
$str_height = $pos[5] -$pos[3];

//给图片添加文字
$location =intval($_POST['location']); //水印的位置

switch ( $location )
{
	case 1://左上角
		imagettftext($image, $size, 0,
		10,10+$size, $color, $font, $content);
	break;

	case 2://右上角
		imagettftext($image, $size, 0,$width-$str_width-10, 10+$size,$color, $font,$content);
	break;

	case 3://左下角
		imagettftext($image,$size, 0, 10,$height-10, $color, $font, $content);
	break;

	case4://右下角
		imagettftext($image, $size, 0,$width-$str_width-10,$height-10, $color, $font,$content);
	break;

	case 5://正中心
		imagettftext($image, $size, 0,$width/2-$str_width/2,$height/2-$str_height/2, $color, $font,$content);
	break;

	default:
	imagettftext($image, 30, 0, 100, 100,$color, $font, $content);
	break;
}

//创建存放图片的文件夹
$lujing ='../attachment/images/';
if ( !is_dir( $lujing ) )
{
	mkdir($lujing, 0777,true);
}

//保存合成后的图片
imagejpeg($image,$lujing.'photo_'.time().'.jpg');

//销毁图片
imagedestroy($image);

到此这篇关于PHP计算字符串真正的宽度和高度像素(图片加文字水印示例)的文章就介绍到这了,更多相关PHP字符串宽高内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PHP计算字符串真正的宽度和高度像素(图片加文字水印示例)

本文链接: https://lsjlt.com/news/197504.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP计算字符串真正的宽度和高度像素(图片加文字水印示例)
    PHP计算字符串用strlen()只能得到字符串长度,不是宽高像素,使用到了php函数ImageTTFBBox(),就可以根据字体的大小和所用字体计算字符串的宽高像素。 ImageT...
    99+
    2023-02-25
    PHP计算字符串宽度和高度 PHP图片加文字水印
  • PHP如何计算字符串真正的宽度和高度像素
    这篇文章主要介绍“PHP如何计算字符串真正的宽度和高度像素”,在日常操作中,相信很多人在PHP如何计算字符串真正的宽度和高度像素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP如何计算字符串真正的宽度和高...
    99+
    2023-07-05
  • php怎么正确计算中文字符串的长度
    今天小编给大家分享一下php怎么正确计算中文字符串的长度的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、PHP中字符串长度...
    99+
    2023-07-05
  • 详解php如何正确计算中文字符串的长度
    在PHP编程中,我们常常遇到需要计算字符串长度的场景。一般情况下,我们习惯用 strlen() 函数或 mb_strlen() 函数来计算字符串长度。然而,在处理中文字符串时,我们会发现使用 strlen() 函数会出现问题,因为中文字符不...
    99+
    2023-05-14
    php字符串 php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作