php 图片水印中文乱码解决方法
代码如下 | 复制代码 |
$name = iconv("gb2312","utf-8",www.111cn.net 一聚教程网); $font = 'simhei.ttf';//水印字体 $im = imagecreatefromjpeg("test.jpg");//载入图片 $black = imagecolorallocate($im, 0, 0, 0);//设置颜色 imagettftext($im, 12, 0, 320, 84, $black, $font, $name);//打印水印 imagepng($im);//输出图片,如果要保存加个保存路径和文件名,如imagepng($im,'test1.jpg'); imagedestroy($im);//清空缓存 |
下面来看一款生成水印文字函数
代码如下 | 复制代码 |
function str2pic ($string,$source,$destination="",$f,$fontsize=10,$shadowcolor="#ffffff",$f,$x=10,$y=10) { function hex2dec($hexcolror) {#十六进制颜色转换成10进制颜色 |
代码如下 | 复制代码 |
//adv0.jpg就是背景图片,注意函数与图片格式对应 |
生成水印方法二
代码如下 | 复制代码 |
public final class imageutils { } public final static string getpressimgpath(){ /** // 水印文件 /** public static void presstext(string presstext, string targetimg, string fontname,int fontstyle, int color, int fontsize, int x, int y) {
public static void main(string[] args) { |
代码如下 | 复制代码 |
date_default_timezone_set('asia/shanghai'); function setcode($len) { $code = ''; for ($i=0;$i<$len;$i++)//生成随机长度 { $code .= chr(drand()); } return $code; } //生成一个随机字符 function drand() { $rand = mt_rand(0,2); $str = ''; switch ($rand) { case 0: $str = mt_rand(48,57);break;//数字 case 1: $str = mt_rand(65,90);break;//大写字母 case 2: $str = mt_rand(97,122);break;//小写字母 } return $str; } $_session['checkcode'] = $code = setcode(5); |
//php图片验证码原代码,需支持gd2.dll扩展,需修改php.ini后重启iis or ap
代码如下 | 复制代码 |
session_start(); $key = rand(0,3); @imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backcolor);//背景位置 for($i=0;$i<=100;$i++){ @imagestring($im, 3, 5, 1, $randval, $stringcolor);
//调用此页面,如果下面的式子成立,则生成验证码图片 |
//验证码通过gd生成png图片,并把$randval随机数字赋给$_session['login_check_num'],在通过用户输入的$_post进行比较,来判断是否正确。达到需要实现的功能,需要修改php.ini文件,使php支持gd库
本程序是根据用户提供的数据生成3D效果的百分比图片统计效果有一点像中国站长$image = imagecreatetruecolor(200,200); //创建一张200*200的画布;
代码如下 | 复制代码 |
//创建多种又区分的颜色
imagefilledarc($image,100,$i,200,120,30,80,$blue,img_arc_pie);
//添加百分比数据,当然此处必要的时候可以批量的进行一定的运算将输入输入到图片上
imagejpeg($image); |
这是一款经典实用的生成小图的php代码,有专业素语来讲就是php 生成缩略图代码哦。
# 显示图形及连接
function showdir ($adirectory, $i)
{
global $browsedir;
$start = $i;
# 更改 $maxcols 及 $maximages 可改变每一页显示的小图的行数与列数。
$maxcols = 2;
$maximages = 6;
$maximages = $i + ($maximages - 3);
# 更改 $imagemaxwidth 及 $imagemaxheight 可改变显示小图的宽度与高度。
$imagemaxwidth = 100;
$imagemaxheight = 100;
# 计算高度与宽度的比例。
$imagemaxratio = $imagemaxwidth / $imagemaxheight;
$ndirectory = sizeof ($adirectory);
echo (table_start);
for ($i; $i<=$maximages;)
{
echo (row_start);
for ($icols=1; $icols<=$maxcols; $icols++)
{
echo (col_start);
$imagefilename = $adirectory[++$i];
if (strlen($imagefilename)>0)
{
$imagepath = $browsedir."/".$imagefilename;
$imagesize = getimagesize ($imagepath);
if ($imagesize)
{
$imagewidth = $imagesize[0];
$imageheight = $imagesize[1];
$imageratio = $imagewidth / $imageheight;
if ($imageratio > $imagemaxratio)
{
$imageoutputwidth = $imagemaxwidth;
$imageoutputheight = ceil ($imagemaxwidth/$imagewidth*$imageheight);
}
else if ($imageratio < $imagemaxratio)
{
$imageoutputheight = $imagemaxheight;
$imageoutputwidth = ceil ($imagemaxheight/$imageheight*$imagewidth);
} else
{
$imageoutputwidth = $imagemaxwidth;
$imageoutputheight = $imagemaxheight;
}
# 显示图形
echo (a_start.$imagepath.a_close);
echo (img_start.$imagepath.img_width.$imageoutputwidth.img_height.$imageoutputheight.img_end);
echo (line_break.$adirectory[$i]);
echo (a_end);
}
echo (col_end);
}
}
echo (row_end);
}
echo (table_end);
pagemenu ($browsedir, $ndirectory, $start);
}
function pagemenu ($browsedir, $ndirectory, $pg) {
echo "<br><center><font face="verdana, arial, helvetica, sans-serif" size="1" color="#000033">page:";
$pg_num = 1;
for ($img_num = 0; $img_num <= $ndirectory;) {
if ($pg == $img_num) {
echo "<span class="menulink_1"><a href="thumb.php?browsedir=$browsedir&start=$img_num"> *$pg_num</a> <span>";
} else {
echo "<span class="menulink_2"><a href="thumb.php?browsedir=$browsedir&start=$img_num"> $pg_num</a> <span>";
}
# 建立其他页次的连接, 每页显示四张图, 故页数 $pg_num 每加 1 , $img_num 就加 4 。
$pg_num = $pg_num + 1;
$img_num = $img_num + 4;
}
echo "</font> ";
}
function dirtoarray ($browsedir, $extensions)
{
$nextensions = sizeof ($extensions);
$idirectory = 0;
$directory = dir($browsedir);
while ($entry = $directory->read())
{
for ($i=1; $i<=$nextensions; $i++)
{
$compare = stristr ($entry, $extensions[$i]);
if (strlen($compare) == strlen($extensions[$i]))
{
$adirectory[++$idirectory] = $entry;
break;
}
}
}
$directory->close();
return $adirectory;
}
#主程序
#变量 $browsedir 为图形文件放置的位置。
$browsedir="./images";
# 允许浏览的图形文件扩展名, 放置於数组中, 可自行增加。
$extensions[1] = "jpeg";
$extensions[2] = "jpg";
$extensions[3] = "gif";
$extensions[4] = "png";
showdir (dirtoarray ($browsedir, $extensions), $start);
define ("line_break", "<br>");
define ("table_start", "<table width=600> ");
define ("table_end", "</table> ");
define ("row_start", " <tr> ");
define ("row_end", " </tr> ");
define ("col_start", " <td align=center> ");
define ("col_end", " </td> ");
define ("img_start", "<img src=");
define ("img_end", ">");
define ("img_width", " width=");
define ("img_height", " height=");
define ("a_start", '<a href="');
define ("a_close", '">');
define ("a_end", "</a>");
?>
相关文章
- 最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个...2016-11-25
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- 今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21连接MySql速度慢的解决方法(skip-name-resolve)
最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24总结android studio注意事项及打不开等问题解决方法
经过一段时间的使用,总结了android studio打不开等问题的6种解决方法及android studio注意事项,希望对大家有所帮助。 1 首次运行,建立好项目需要下载一些东西,如果...2016-09-20- 在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式。<?php$arr = array ( 'Name'=>'希亚', 'Age'...2015-11-08
MySQL ERROR 2013 (HY000)错误解决方法
当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是在linux shell命令行中直接打 mysql 命令,...2015-03-15IE6-IE9中tbody的innerHTML不能赋值的解决方法
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style="height:3...2014-06-07- centos6.2,停止mysqld然后修改/etc/my.cnf datadir的位置,启动mysqld提示FAILED,查看日志 复制代码 代码如下: 120609 11:31:31 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 120609 11:35:12 my...2015-03-15
- 小米手机如果想要刷机就必须要先解锁验证才可以,那么,如果遇到小米解锁验证失败以及小米解锁工具登录失败的现象怎么办呢?对此,本文就为大家进行解答,有需要的朋友来看看。...2016-12-21
Photoshop提示“此产品的许可证已过期"及“无法开始您的Adobe Photoshop CS5.1 订阅”解决方法
首先不要鄙视我用Photoshop盗版,实在是贵。现在我们来看看如果你的Photoshop提示“此产品的许可证已过期",还有“无法开始您的Adobe Photoshop CS5.1 订阅”如何解决吧...2016-09-14解决HttpPost+json请求---服务器中文乱码及其他问题
这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22- 今天小编在这里就来给各位photoshop的这一款软件的使用者们来详细的说一下软件的字体出现了乱码这一问题的解决方法,那么各位有出现这个问题的,下面就来跟着小编一起看...2016-09-14
- 用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些 代码如下 复制代码 ...2016-11-25
- 有部分小伙伴表示自己遇到了51模拟器程序不能打开的情况,那么51模拟器打不开怎么回事?下面我就来为大家分享一下解决的方法,有需要的小伙伴就来看一看吧。  &...2017-07-06
CentOS下php使用127.0.0.1不能连接mysql的解决方法
php代码很简单:复制代码 代码如下: $server="127.0.0.1"; println("Begin"); $link = mysql_connect($server,"mysql","mysql"); if (!$link) { die('Could not connect: ' . mysql_error().mysql_errno()); } lin...2015-03-15