给图片加水印的PHP程序

 更新时间:2016年11月25日 16:59  点击:1790

<?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--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • 微信小程序 页面传值详解

    这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • C#使用Process类调用外部exe程序

    本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 微信小程序二维码生成工具 weapp-qrcode详解

    这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
  • uniapp微信小程序:key失效的解决方法

    这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
  • python opencv通过4坐标剪裁图片

    图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
  • 将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文

    时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • 微信小程序 网络请求(GET请求)详解

    这篇文章主要介绍了微信小程序 网络请求(GET请求)详解的相关资料,需要的朋友可以参考下...2016-11-22