文字水印基本思路:
1。用getimagesize()获取图片的信息(as:大小,属性等);
2。根据图片信息用imagecreatefromjpeg

()/imagecreatefromgif/imagecreatepng创建图片(即标识符);
3。设置要用到的字体(as:"arial.ttf",一定要给出存放的正确路径,如在

windows系统中,可到windows/fonts中把文件拷贝到程序的目录,或者从网

上下载到本地);
4。设置作为水印的文字;
5。用imagecolorallocate()设置水印文字的颜色;
6。用imagettftext()把文字写到创建的图片中;
7。根据图片的属性设置头部属性(as:header("content-

type:image/jpeg")));
8。用imagejpeg(),imagepng()等相应的函数输出图像;其中:如:

imagejpeg($im)是给出相应的效果,没有真正打上水印,要真正给图打水印

,则给出相应的参数;如:imagejpeg($im, $newimagename[,
$flag]);
9。用imagedestroy()销毁生成的内容

代码:

文字水印
<?php
$image = "1.jpg";
$ims =
getimagesize($image);
list($width, $height) =
$ims;
switch($ims[2]){
 case 1:
  $im =
imagecreatefromjpeg($image);
  break;
 case 2:
  $im =
imagecreatefromjpeg($image);
  break;
 case 3:
  $im =
imagecreatefrompng($image);
  break;
}
$font = "arial.ttf";
$text =
"hi,world!";
$col = imagecolorallocate($im, 255, 0, 0);
imagettftext($im,
12, 0, rand(0, $width), rand(0, $height), $col,

$font,$text);
header("Content-type:image/jpeg");
//imagejpeg($im,
'ok.jpg');
imagejpeg($im);
imagedestroy($im);
?>

图片水印基本思路:
1。给出两幅图片,一幅要打水印的,一幅是作为水印的;
2。用getimagesize()获取图片的信息(如是jpeg,gif,png等属性);
3。根据图片的信息选择函数imagecreatefromgif(),
imagecreatefrompng()

等分别创建两个图片(图片标识符);
4。用imagecopy()函数把水印图片复制到要打水印的图片;
5。根据图片的属性选择头部函数(as:header("content-

type:image/jpeg"),
header("content-type:image/gif"));
6。根据图片的属性用imagejpeg() imagepng()
等函数输出图片。如果是一

个参数的话,相当于是预览,多个参数即给出新图名称,新图就是打上水印

的效果图。
7。用imagedestroy()销毁生成的内容

示例代码:

图片水印
<?php
$image = "1.jpg";
$ims =
getimagesize($image);
$logo = "2.jpg";
$ins = getimagesize($logo);

switch($ims[2]){
 case 1:
  $im =
imagecreatefromgif($image);
  break;
 case 2:
  $im =
imagecreatefromjpeg($image);
  break;
 case 3:
  $im =
imagecreatefrompng($image);
  break;
}

switch($ins[2]){
 case 1:
  $in =
imagecreatefromgif($logo);
  break;
 case 2:
  $in =
imagecreatefromjpeg($logo);
  break;
 case 3:
  $in =
imagecreatefrompng($logo);
  break;
 
}
imagecopy($im, $in,
rand(10,300), rand(10, 50), 20, 20, 100, 100);

header("Content-type:image/jpeg");
//imagejpeg($im,
'final.jpg');
imagejpeg($im);
imagedestroy($in);
imagedestroy($im);
?>

裁切成小图:
基本思路:
1。分别创建两个图片区域,一个是要输出的图片(原来没有的),用

imagecreatetruecolor()创建,一个是原来存在的图片(即原图),用

imagecreatefromjpeg(),imagecreatefromgif等函数创建;
2。用imagecopyresized()函数把原图填充新区域;
3。用imagejpeg(),
imagegif();等函数输出小图,如给出多个参数,就可以
生成小图存放了。
4。用imagedestroy()销毁生成的内容

小图
示例代码:
<?php

$filename = '1.jpg';
$percent = 0.5;

// Content type
header('Content-Type: image/jpeg');

// Get new sizes
list($width, $height) =
getimagesize($filename);
$newwidth = $width * $percent;
$newheight =
$height * $percent;

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source =
imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth,

$newheight, $width, $height);

// Output
imagejpeg($thumb,
'final.jpg');
imagejpeg($thumb);
imagedestroy($thumb);
imagedestroy($source);
?>

PHP 文字,图片水印,缩略图,裁切成小图(大小变小)的更多相关文章

  1. php 使用GD库压缩图片,添加文字图片水印

    先上一个工具类,提供了压缩,添加文字.图片水印等方法: image.class.php <?php class Image { private $info; private $image; pu ...

  2. asp.net生成缩略图、文字图片水印

    /// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...

  3. PHP加水印代码 支持文字和图片水印

    PHP加图片水印.文字水印类代码,PHP加水印类,支持文字图片水印的透明度设置.水印图片背景透明.自己写的一个类,因为自己开发的一套CMS中要用到,网上的总感觉用着不顺手,希望大家也喜欢这个类,后附有 ...

  4. PHP 图片水印类

    <?php /** * 加水印类,支持文字图片水印的透明度设置.水印图片背景透明. * $obj = new WaterMask($imgFileName); //实例化对象 * $obj-&g ...

  5. php使用GD库实现图片水印和缩略图——封装成类

    学完了如何使用GD库来实现对图片的各种处理,那么我们可以发现,不管哪种方法,都有相似之处,如果我们把这些相似的地方和不相似的地方都封装成类,这样就可以提升代码的速度,而且节省了很多时间,废话不多说,来 ...

  6. php使用GD库实现图片水印和缩略图——给图片添加文字水印

    今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...

  7. PHP面向对象——GD库实现图片水印和缩略图

    今天的实现目标就是使用GD库完成对图片加水印和图 片缩略图两个功能 动身前逻辑准备 属性: 路径 功能: 构造方法 生成水印的方法 获取 图片信息 获取位置信息(123 456 789) 创建图片资源 ...

  8. Thinkphp图片水印和文字水印

    1.Thinkphp图像处理 在TP框架中,我们经常用到图片上传,我最近写了很多关于图片上传的文章,thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成等文章,今天写一下关于图 ...

  9. GD库 图片缩略图 图片水印

    /** * GD库 图片缩略图 *//*$image = imagecreatefromjpeg("1.jpg");var_dump($image);exit;$width = i ...

随机推荐

  1. HBase 学习笔记---守护进程及内存调优

    1.HMaster           HMaster的任务前面已经说过了,两个大方向:一.管理Hbase Table的 DDL操作 二.region的分配工作,任务不是很艰巨,但是如果采用默认自动s ...

  2. Xsocket学习

    1.xsocket是一个轻量级的基于NIO的服务器框架,用于开发高性能.可扩展.多线程的服务器.该框架封装了线程处理,异步读写等方面的操作. 定义一个借口,继承IDataHandler,IConnec ...

  3. 第三步 用Jena自定义完成数据库到RDF的映射

    第三步 用Jena自定义完成数据库到RDF的映射 2013年10月17日 8:53:27 这一步用Jena编程,终于能做点有技术含量的事情了.这个工作计划本周内完成,下周一好给老师一个交待. 目标:把 ...

  4. [置顶] Oracle job procedure 存储过程定时任务

    oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; selec ...

  5. Android实时监听网络状态(2)

    在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒.一般可以通过ConnectivityManager来完成该工作. ConnectivityMana ...

  6. 六款值得推荐的android(安卓)开源框架简介【转】

    http://my.oschina.net/u/1244156/blog/380647 1.volley 项目地址 https://github.com/smanikandan14/Volley-de ...

  7. Xutils 源码解析【转】

    原文:http://my.oschina.net/u/1538627/blog/395098 目录[-] 1. 功能介绍 2. 详细设计 2.1 View模块 2.1.1 总体设计 2.1.2 流程图 ...

  8. 基于smack的xmpp packet 重写

    基于Smack 实现Notification数据包.smack的类中有一个org.jivesoftware.smack.packet.IQ只需对他重写即可,在做的时候其实可以简单一点的,如果你使用ti ...

  9. iOS开发简单高效的数据存储

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题,你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨.本文主要从概 ...

  10. Mac上安装boost开放环境

    方法一: 去Macports官网的下载页面(https://distfiles.macports.org/MacPorts/)下载对用Mac系统的pkg文件,下载完成之后,双击,一路[下一步],到安装 ...