首页 > 编程技术 > php

给图片加水印的PHP程序

发布时间:2016-11-25 16:59

<?php
/******************************************************************************

参数说明:
$max_file_size : 上传文件大小限制, 单位BYTE
$destination_folder : 上传文件路径
$watermark : 是否附加水印(1为加水印,其他为不加水印);

使用说明:
1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
2. 将extension_dir =改为你的php_gd2.dll所在目录;
******************************************************************************/

//上传文件类型列表
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);

$max_file_size=2000000; //上传文件大小限制, 单位BYTE
$destination_folder="uploadimg/"; //上传文件路径
$watermark=1; //是否附加水印(1为加水印,其他为不加水印);
$watertype=1; //水印类型(1为文字,2为图片)
$waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring="http://www.etoow.com/"; //水印字符串
$waterimg="xplore.gif"; //水印图片
$imgpreview=1; //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize=1/2; //缩略图比例
?>
<html>
<head>
<title>ZwelL图片上传程序</title>
<style type="text/css">
<!--
body
{
font-size: 9pt;
}
input
{
background-color: #66CCFF;
border: 1px inset #CCCCCC;
}
-->
</style>
</head>

<body>
<form enctype="multipart/form-data" method="post" name="upform">
上传文件:
<input name="upfile" type="file">
<input type="submit" value="上传"><br>
答应上传的文件类型为:<?=implode(', ',$uptypes)?>
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

最近写的一个GD图库用以生成横竖柱状图和折线图的类库,算是一个教学例程吧
Class ImageReport{
var $X;//图片大小X轴
var $Y;//图片大小Y轴
var $R;//背影色R值
var $G;//...G.
var $B;//...B.
var $TRANSPARENT;//是否透明1或0
var $IMAGE;//图片对像
//-------------------
var $ARRAYSPLIT;//指定用于分隔数值的符号
var $ITEMARRAY;//数值
var $REPORTTYPE;//图表类型,1为竖柱形2为横柱形3为折线形
var $BORDER;//距离
//-------------------
var $FONTSIZE;//字体大小
var $FONTCOLOR;//字体颜色
//--------参数设置函数
function setImage($SizeX,$SizeY,$R,$G,$B,$Transparent){
$this->X=$SizeX;
$this->Y=$SizeY;
$this->R=$R;
$this->G=$G;
$this->B=$B;
$this->TRANSPARENT=$Transparent;
}
function setItem($ArraySplit,$ItemArray,$ReportType,$Border){
$this->ARRAYSPLIT=$ArraySplit;
$this->ITEMARRAY=$ItemArray;
$this->REPORTTYPE=$ReportType;
$this->BORDER=$Border;
}
function setFont($FontSize){
$this->FONTSIZE=$FontSize;
}
//----------------主体
function PrintReport(){
Header( "Content-type: image/gif");
//建立画布大小
$this->IMAGE=ImageCreate($this->X,$this->Y);
//设定画布背景色
$background=ImageColorAllocate($this->IMAGE,$this->R,$this->G,$this->B);
if($this->TRANSPARENT=="1"){
//背影透明
Imagecolortransparent($this->IMAGE,$background);
}else{
//如不要透明时可填充背景色
ImageFilledRectangle($this->IMAGE,0,0,$this->X,$this->Y,$background);
}
//参数字体文小及颜色
$this->FONTCOLOR=ImageColorAllocate($this->IMAGE,255-$this->R,255-$this->G,255-$this->B);
Switch ($this->REPORTTYPE){
case "0":
break;
case "1":
$this->imageColumnS();
break;
case "2":
$this->imageColumnH();
break;
case "3":
$this->imageLine();
break;
}
$this->printXY();
$this->printAll();
}
//-----------打印XY坐标轴
function printXY(){
//画XY坐标轴*/
$color=ImageColorAllocate($this->IMAGE,255-$this->R,255-$this->G,255-$this->B);
$xx=$this->X/10;
$yy=$this->Y-$this->Y/10;

你总是花很多时间去做一些按纽吧,去设计一个好的按纽背景全部用它吧!
文字可以随意更换!

<?
Header( "Content-type: image/gif");
if(!isset($s)) $s=11;
//times.tif可以是你喜欢的任何字体
$size = imagettfbbox($s,0, "/fonts/TIMES.TTF",$text);
//设定长宽
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
$xpad=9;
$ypad=9;
$im = imagecreate($dx $xpad,$dy $ypad);
//设定R,G,B
$blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
//画图
ImageRectangle($im,0,0,$dx $xpad-1,$dy $ypad-1,$black);
ImageRectangle($im,0,0,$dx $xpad,$dy $ypad,$white);
ImageTTFText($im, $s, 0, (int)($xpad/2) 1, $dy (int)($ypad/2), $black, "/fonts/TIMES.TTF", $text);
ImageTTFText($im, $s, 0, (int)($xpad/2), $dy (int)($ypad/2)-1, $white, "/fonts/TIMES.TTF", $text);
ImageGif($im);
ImageDestroy($im);
?>

重要的是你不能在这段代码中加入任何的HTML标记,尤其不答应在<? and ?> 当中加入!

调用时写下面的代码:
<IMG SRC="button.php3?s=36&text=PHP is Cool">
s是图片的大小 text是图片的文字
赶紧试一试吧!


系统要求:
硬件能跑起操作系统即可
win2k、winxp或win2003操作系统

前期预备:
所需软件列表:(本配置以下列软件版本完成)
1、 apache_2.0.47-win32-x86-no_ssl (apache web服务器)
2、 php-4.3.3-win32 (php语言解析器)
3、 mysql-4.0.12-win (mysql数据库)
4、 j2sdk-1_4_2-windows-i586 (java 语言环境)
5、 jakarta-tomcat-5.0.9 (tomcat jsp解析服务器)
6、 resin-3.0.3 (resin jsp解析服务器)
7、 mod_jk_1.2.5_2.0.47.dll (整合apache tomcat的plus)
8、 mm.mysql-2.0.4-bin.jar (jsp访问连接mysql文件)

开始安装:

一、 apahce php mysql安装配置

1. 安装apache_2.0.47-win32-x86-no_ssl ,程序默认安装路径为:c:apache2program filesapache group ,需要将其安装路径修改为:c:
(也可以不做修改,主要为了修改配置方便做修改的)。
2. 安装完成之后,apache服务自动加载,这时打开浏览器,浏览:http://localhost,出现apache欢迎页面(这步需要将c:apache2htdocs目录中的文件“index.html.en”改为“index.html”,方能显示);假如这步出现异常,请检查安装源文件,重新安装。
3. 安装php-4.3.3-win32,一般下载的php文件为一个免安装的压缩包,解压到c:php就可以。
4. 配置php和apache,使之能解析php程序。
php配置:将c:php目录中的“php.ini-dist”改名“php.ini”,并复制到c:windowssystem32(win2k目录为:c:winntsystem32)
apache配置:
c:apahce2confhttpd.conf


httpd.conf
d在此配置文件最后添加以下语句,用以支持php程序:

scriptalias /php/ "c:/php/"
addtype application/x-httpd-php .php3
addtype application/x-httpd-php .php
addtype application/x-httpd-php .phtml
action application/x-httpd-php "/php/php.exe"

5.重新启动apache服务器,用编辑器编写如下语句:
<?
phpinfo();
?>

保存文件名为“test.php”到c:apache2htdocs目录,然后打开浏览器,浏览:http://localhost/test.php,出现php基本信息就说明配置成功。严格按以上说明安装配置,都会一次成功。
6. 安装mysql-4.0.12-win,一直按”next”就安装成功了,然后在c:mysqlbin目录执行” winmysqladmin.exe”,出现mysql的初始信息面,表示安装成功。
7. php连mysql此处略过,一般没有什么问题。

到此可以休息一下,预备下面的漫长过程……

二、安装jdk和tomcat
1. 安装j2sdk-1_4_2-windows-i586,jdk一定要在tomcat和resin之前安装,默认安装路径就可以。
2. 安装jakarta-tomcat-5.0.9,默认安装路径就可以。
3. 复制mm.mysql-2.0.4-bin.jar文件分别到c:j2sdk1.4.2lib 和 c:tomcat 5.0commonlib
4.设置环境变量(桌面->我的电脑->右键点击->选择“属性”->高级->环境变量),所有设置均在系统变量栏进行。
新建->变量名:java_home
->变量值:c:j2sdk1.4.2
新建->变量名:tomcat_home
->变量值:c:tomcat 5.0
新建->变量名: path
->变量值:.;c:j2sdk1.4.2bin; (前面的“.;”一定要有)
修改增加环境变量 classpath (假如没有此变量名,则新建)
->增加变量值:.;c:j2sdk1.4.2libdt.jar;c:j2sdk1.4.2libtool.jar;
c:j2sdk1.4.2libnetcomponents.jar;
c:j2sdk1.4.2libmm.mysql-2.0.4-bin.jar;
c:tomcat 5.0commonclasses;

一、软件预备:
php(5.1.2):http://www.php.net

mysql(5.0.19):http://www.mysql.com

zend optimizer(2.6.2):http://www.zend.com

phpmyadmin(2.8.0.2):http://www.phpmyadmin.net

假设 c: 为你现在所使用操作系统的系统盘,假如你目前操作系统不是安装在 c: ,请自行修改。

二、安装 php :

(1) 下载后得到 php-5.1.2-win32.zip ,解压至c:php(这个路径可以随意,不过下面要是用到这个路径,请相应修改);

(2)再将 c:phplibmysql.dll 和 c:inetpubphpextphp_mysql.dll 复制到 c:windowssystem32 下;

(3)将c:phpphp.ini-dist 复制到c:windows ( windows 2000 下为 c:winnt)并将改名为php.ini,然后用记事本打开,利用记事本的查找功能搜索:

extension_dir = "c:phpext"
将其路径指到你的 php 目录下的 extensions 目录,比如:extension_dir = "c:inetpubphpext" ;

搜索;windows extensions并仅打开需要的模块以节省内存(去掉每个模块前的;号即可):

extension=php_gd2.dll
gd库支持,假如不打开该模块则discuz!论坛图片水印不能使用。

extension=php_mbstring.dll
为了支持phpmyadmin,打开mbstring。

extension=php_mysql.dll
不用说了吧,支持mysql。

(4)配置 iis 使其支持 php

首先必须确定系统中已经正确安装 iis ,假如没有安装,需要先安装 iis。

php 与iis整合时支持 cgi 和 isapi 两种模式,推荐使用 isapi 模式。这里只解介绍 isapi 模式安装方法:isapi 模式安装步骤:

在“控制面板”的“治理工具”中选择“internet 服务治理器”,打开 iis 后停止服务,然后在左侧“你需要支持php的web站点上单击右键选择“属性”,在打开的“ web 站点属性”窗口的“isapi 筛选器”标签里找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:php ,再将可执行文件指向 php5isapi.dll 所在路径,如:c:phpphp5isapi.dll 。

打开“web 站点属性”窗口的“主目录”标签,找到并点击“配置”按钮,在弹出的“应用程序配置”窗口中找到并点击“添加”按钮,在弹出的窗口中新增一个扩展名映射,扩展名为 .php ,单击“浏览”将可执行文件指向 php5isapi.dll 所在路径,如:c:phpphp5isapi.dll,然后一路确定即可。

再打开“web 站点属性”窗口的“文档”标签,找到并点击“添加”按钮,向默认的 web 站点启动文档列表中添加 index.php 项。您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。

确定 web 目录的应用程序设置和执行许可中选择为纯脚本,然后关闭 internet 信息服务治理器,在命令提示符中执行如下命令:

net stop w3svc
net stop iisadmin
net start w3svc

然后在“internet 服务治理器”左边的“web服务扩展”中设置isapi 扩展答应,active server pages 答应

打开浏览器,输入:http://localhost/,看到成功页面后,在 iis 根目录下新建一个 phpinfo.php ,内容如下:


<?php
phpinfo();

标签:[!--infotagslink--]

您可能感兴趣的文章: