PHP缩略图生成和图片水印制作

生成缩略图和添加水印是Web开发中经常需要用到的功能。下面是我整理的PHP缩略图生成和图片水印制作的完整攻略。

生成缩略图

1. 安装gd库

gd库是PHP的一个扩展库,它提供了生成缩略图、图片处理等功能。如果服务器中没有安装gd库,需要先进行安装。

2. 获取原图

在代码中获取原图,可以使用PHP的imagecreatefromjpeg(), imagecreatefromgif() 或者 imagecreatefrompng() 函数,根据原图的文件类型来选择处理函数,如下:

$filename="test.jpg";
list($width, $height)=getimagesize($filename);
$src=imagecreatefromjpeg($filename);

这里以jpg图片为例。

3. 调整尺寸

计算出缩略图的宽、高,然后使用imagecreatetruecolor()函数创建一个按比例缩小的图像,最后,使用imagecopyresampled()函数将原图缩小到新的尺寸。

$newwidth=200;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

最后生成缩略图:

imagejpeg($tmp,"test_thumb.jpg",100);

4. 示例说明

下面是一个详细的生成缩略图示例:

<?php
$filename="test.jpg";
list($width, $height)=getimagesize("$filename");
$src=imagecreatefromjpeg($filename);
$newwidth=200;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
imagejpeg($tmp,"test_thumb.jpg",100);
imagedestroy($src);
imagedestroy($tmp);
?>

添加水印

在图片上添加水印,在Web开发中也是常用的技术。下面是添加水印的完整攻略。

1. 获取原图像

同样使用imagecreatefromjpeg(), imagecreatefromgif() 或者 imagecreatefrompng() 函数获取要添加水印的原图像。

$filename="test.jpg";
$src=imagecreatefromjpeg($filename);

2. 添加水印

生成水印文字或者图片,然后将其添加到原图上。

添加文字水印

使用ImageColorAllocate()函数设置水印的颜色,然后使用ImageTtfText()函数添加文字水印到原图上。

$text="Mywatermark";
$color=ImageColorAllocate($src,255,255,255);
ImageTtfText($src,20,0,10,30,$color,"arial.ttf",$text);

添加图片水印

使用imagecreatefrompng()或者imagecreatefromgif()函数读取水印图片,然后将其添加到原图上。

$watermark=imagecreatefrompng("watermark.png");
$wm_width=imagesx($watermark);
$wm_height=imagesy($watermark);
$dst_x=($width-$wm_width)/2;
$dst_y=($height-$wm_height)/2;
imagecopy($src,$watermark,$dst_x,$dst_y,0,0,$wm_width,$wm_height);

3. 保存新图片

使用imagejpeg(), imagegif() 或者 imagepng() 函数将新图片保存到服务器上。

imagejpeg($src,"test_watermark.jpg",100);

4. 示例说明

下面是一个详细的添加水印的示例:

<?php
$filename="test.jpg";
list($width, $height)=getimagesize("$filename");
$src=imagecreatefromjpeg($filename);
$text="Mywatermark";
$color=ImageColorAllocate($src,255,255,255);
ImageTtfText($src,20,0,10,30,$color,"arial.ttf",$text);
imagejpeg($src,"test_watermark.jpg",100);
imagedestroy($src);
?>

以上就是生成缩略图和添加水印的完整攻略。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP缩略图生成和图片水印制作 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 本文讲述下windows下使用rsync备份数据

    Windows下使用rsync备份数据的完整攻略 本文将为您提供Windows下使用rsync备份数据的完整攻略,包括介绍、使用方法和两个示例说明。 介绍 rsync是一种常用的数据备份工具,可以在不同的系统之间同步文件和目录。在Windows系统中,可以使用Cygwin或MinGW等工具来安装rsync,并使用rsync进行数据备份。本文将介绍Window…

    other 2023年5月6日
    00
  • win7系统电脑运行程序软件出现libeay32.dll丢失的解决方法

    题目:win7系统电脑运行程序软件出现libeay32.dll丢失的解决方法 简介 libeay32.dll是OpenSSL密码库中的一个重要的动态链接库文件,它为软件运作提供必要的支持。如果在运行软件时遇到“libeay32.dll 文件丢失”或“找不到libeay32.dll”等错误提示,那么应该按照下面的方式进行排查和处理。 解决方法 以下是几种解决方…

    other 2023年6月27日
    00
  • Apache Wind2003 配置网站目录权限小结

    Apache Wind2003 配置网站目录权限小结 1. 查看 Apache 服务器运行的身份 在 Wind2003 中,我们可以通过 Task Manager(任务管理器)查看 Apache HTTP Server 进程和对应用户身份。 具体步骤: 打开 Task Manager(任务管理器)。 切换到 Processes(进程)选项卡。 找到 Apac…

    other 2023年6月26日
    00
  • 迅雷下载宝怎么样 迅雷下载宝使用教程(附下载地址)

    迅雷下载宝使用攻略 1. 什么是迅雷下载宝? 迅雷下载宝是一款功能强大的下载工具,它能够帮助用户快速、稳定地下载各种文件。它具有高速下载、多线程下载、资源搜索等特点,是许多用户首选的下载工具之一。 2. 迅雷下载宝的安装和设置 2.1 下载迅雷下载宝 你可以从迅雷官方网站下载迅雷下载宝的安装包。访问迅雷官方网站,找到下载页面,选择适合你操作系统的版本进行下载…

    other 2023年8月4日
    00
  • springBoot项目配置文件加载优先级及同配置覆盖问题详解

    springBoot的配置文件加载优先级及同配置覆盖问题是一个比较常见的问题,特别对于初学者来说,容易造成困扰。本文将详细讲解springBoot中配置文件加载优先级及同配置覆盖问题的详细攻略,并且提供两个示例说明。 配置文件的加载优先级 springBoot的配置文件有以下几种类型: application.properties application.y…

    other 2023年6月25日
    00
  • subversion服务端配置步骤详解

    下面是关于“subversion服务端配置步骤详解”的攻略。 1. 安装Subversion服务端 在Linux系统中,安装Subversion服务端比较简单。以Ubuntu系统为例,只需在命令行中输入以下命令即可完成安装: sudo apt-get update sudo apt-get install subversion 注意:上述命令需要在管理员权限…

    other 2023年6月27日
    00
  • 项目中使用Typescript封装axios

    一、什么是 Typescript Typescript 是JavaScript 的一个超集,它不仅支持JavaScript的语法,还增加了许多新的特性。最重要的是,Typescript 具有类型检查的能力,能在编译时即可检查出代码中的类型错误,提高了代码的可靠性和可维护性。 二、什么是 Axios Axios 是一个基于Promise 的HTTP 客户端,用…

    other 2023年6月25日
    00
  • Android 夜间模式的实现代码示例

    当实现Android夜间模式时,可以通过以下步骤进行操作: 创建夜间模式资源文件夹:首先,在项目的res目录下创建一个新的资源文件夹,用于存放夜间模式的资源文件。可以将其命名为res-night。 创建夜间模式样式文件:在res-night文件夹下创建一个新的样式文件,例如styles.xml。在该文件中,定义夜间模式下的样式属性,如背景颜色、文字颜色等。以…

    other 2023年9月7日
    00
合作推广
合作推广
分享本页
返回顶部