当前位置: 编程技术>php
本页文章导读:
▪php radio 单选框获取与保持值的实现代码
php 读取单选按钮radio值 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>php 读取单选按钮radio值</title> </he.........
▪php imagecreatetruecolor 创建高清和透明图片代码小结
(PHP 4 >= 4.0.6, PHP 5) imagecreatetruecolor — 新建一个真彩色图像 说明 resource imagecreatetruecolor ( int $x_size , int $y_size ) imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑.........
▪php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
代码如下:<?php //上传文件类型列表 $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png' ); $max_file_size = 200000; //上传文件大小限制, 单位BYTE $path_im = "prod_img/".........
[1]php radio 单选框获取与保持值的实现代码
来源: 互联网 发布时间: 2013-11-30
php 读取单选按钮radio值
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php 读取单选按钮radio值</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<p>
<label>
<input type="radio" name="RadioGroup1" value="1" />
单选</label>
1<br />
<label>
<input type="radio" name="RadioGroup1" value="2" />
单选</label>
2</p>
<p>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
<br />
</p>
</form>
</body>
</html>
<?
if( $_POST )
{
echo '你选择了单选择',$_POST['RadioGroup1'];
//由于单选按钮的属性同一时间只能被选中一个就所直接把他们名字相同就OK了。
}
?>
php 中怎样保持单选按钮的值的方法,主要是思路。
<input name="sex" type="radio"value="男" <?php if($_POST['sex'] != "女") echo "checked=checked;"?> />男
<input type="radio" name="sex" value="女" <?php if($_POST['sex'] == "女") echo "checked=checked";?> />女
另外建议不要用 汉字识别,用 0,1 代表 男,女比较好。
代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php 读取单选按钮radio值</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<p>
<label>
<input type="radio" name="RadioGroup1" value="1" />
单选</label>
1<br />
<label>
<input type="radio" name="RadioGroup1" value="2" />
单选</label>
2</p>
<p>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
<br />
</p>
</form>
</body>
</html>
<?
if( $_POST )
{
echo '你选择了单选择',$_POST['RadioGroup1'];
//由于单选按钮的属性同一时间只能被选中一个就所直接把他们名字相同就OK了。
}
?>
php 中怎样保持单选按钮的值的方法,主要是思路。
代码如下:
<input name="sex" type="radio"value="男" <?php if($_POST['sex'] != "女") echo "checked=checked;"?> />男
<input type="radio" name="sex" value="女" <?php if($_POST['sex'] == "女") echo "checked=checked";?> />女
另外建议不要用 汉字识别,用 0,1 代表 男,女比较好。
[2]php imagecreatetruecolor 创建高清和透明图片代码小结
来源: 互联网 发布时间: 2013-11-30
(PHP 4 >= 4.0.6, PHP 5)
imagecreatetruecolor — 新建一个真彩色图像
说明
resource imagecreatetruecolor ( int $x_size , int $y_size )
imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。
是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在,但是在没有安装 GD2 的时候调用,PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。
新建一个新的 GD 图像流并输出图像
<?php
header("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>
Note: 本函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。
php imagecolorallocatealpha 创建透明图片实例
imagecolorallocatealpha(resource $image , int $red , int $green , int $blue, int $alpha )
imagecolorallocatealpha()的行为相同imagecolorallocate()同阿尔法增加透明度参数。
$image
图像资源,通过创造的图像功能,如,一返回imagecreatetruecolor()。
$red
红色分量的价值。
$green
价值的绿色成分。
$blue
蓝色成分的价值。
$alpha
一个介于0和127的价值。 0表示完全不透明,而127表示完全透明。
来看个imagecolorallocatealpha实例教程
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// don't forget to output a correct header!
header('Content-type: image/png');
// and finally, output the result
imagepng($image);
imagedestroy($image);
?>
php imagecreatetruecolor创建高清图片函数
imagecreatetruecolor()返回一个图像标识符代表指定大小的黑色形象。
根据你的PHP和GD版本中函数定义与否。对于PHP 4.0.6通过4.1.x这个函数总是存在的
,如果广东模块加载,但它要求GD2的情况下被安装了PHP将发出一个致命错误并退出。
用PHP 4.2.x版这种行为是不同的人发出警告,而不是一个错误。其他版本只定义此功
能,
看看实例
<?php
header ('Content-type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
?>
我提出这方面合作 - 结合一些例子,然后动态生成的文本。但是,与此设置,我能得
到透明背景的工作也。
<?php
// Set the content-type
header('Content-type: image/png');
// Create the image
$im = imagecreatetruecolor(175, 15);
imagesavealpha($im, true);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 25, $black);
$trans_colour = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $trans_colour);
// The text to draw
$text = $_GET['text'];
// Replace path by your own font path
$font = 'catriel regular.ttf';
// Add some shadow to the text
imagettftext($im, 9, 0, 13, 16, $black, $font, $text);
// Add the text
imagettftext($im, 9, 0, 12, 15, $white, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
ph利用imagecreatetruecolor动态生成高清图片代码
//实例用我们用imagecreatetruecolor
header ('Content-type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
//我把这个一起 - 结合较好的例子,然后动态生成的文本。但是,与此成立,我能得到透明背景以及工作。
//实例二imagecreatetruecolor
header('Content-type: image/png');
// Create the image
$im = imagecreatetruecolor(175, 15);
imagesavealpha($im, true);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 25, $black);
$trans_colour = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $trans_colour);
// The text to draw
$text = $_GET['text'];
// Replace path by your own font path
$font = 'catriel regular.ttf';
// Add some shadow to the text
imagettftext($im, 9, 0, 13, 16, $black, $font, $text);
// Add the text
imagettftext($im, 9, 0, 12, 15, $white, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
/*
实例三创建透明图片
如果你想创建一个PNG图像*透明*,其中的背景是完全透明的,所有行动发生在借鉴,除此之外,然后执行下列操作:
*/
$png = imagecreatetruecolor(800, 600);
imagesavealpha($png, true);
$trans_colour = imagecolorallocatealpha($png, 0, 0, 0, 127);
imagefill($png, 0, 0, $trans_colour);
$red = imagecolorallocate($png, 255, 0, 0);
imagefilledellips教程e($png, 400, 300, 400, 300, $red);
header("Content-type: image/png");
imagepng($png);
你要做的就是创建一个真正的彩色图像,确保阿尔法保存状态是,然后填写一个颜色,也经历了阿尔法级别设置为完全透明(127)的图像。
从上面的代码产生的巴新将有一个完全透明的背景(一红色圆圈拖到Photoshop中的图像,以了解自己)
The resulting PNG from the code above will have a red circle on a fully transparent background (drag the image into Photoshop to see for yourself)
imagecreatetruecolor — 新建一个真彩色图像
说明
resource imagecreatetruecolor ( int $x_size , int $y_size )
imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。
是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在,但是在没有安装 GD2 的时候调用,PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。
新建一个新的 GD 图像流并输出图像
代码如下:
<?php
header("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>
Note: 本函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。
php imagecolorallocatealpha 创建透明图片实例
imagecolorallocatealpha(resource $image , int $red , int $green , int $blue, int $alpha )
imagecolorallocatealpha()的行为相同imagecolorallocate()同阿尔法增加透明度参数。
$image
图像资源,通过创造的图像功能,如,一返回imagecreatetruecolor()。
$red
红色分量的价值。
$green
价值的绿色成分。
$blue
蓝色成分的价值。
$alpha
一个介于0和127的价值。 0表示完全不透明,而127表示完全透明。
来看个imagecolorallocatealpha实例教程
代码如下:
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// don't forget to output a correct header!
header('Content-type: image/png');
// and finally, output the result
imagepng($image);
imagedestroy($image);
?>
php imagecreatetruecolor创建高清图片函数
imagecreatetruecolor()返回一个图像标识符代表指定大小的黑色形象。
根据你的PHP和GD版本中函数定义与否。对于PHP 4.0.6通过4.1.x这个函数总是存在的
,如果广东模块加载,但它要求GD2的情况下被安装了PHP将发出一个致命错误并退出。
用PHP 4.2.x版这种行为是不同的人发出警告,而不是一个错误。其他版本只定义此功
能,
看看实例
代码如下:
<?php
header ('Content-type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
?>
我提出这方面合作 - 结合一些例子,然后动态生成的文本。但是,与此设置,我能得
到透明背景的工作也。
代码如下:
<?php
// Set the content-type
header('Content-type: image/png');
// Create the image
$im = imagecreatetruecolor(175, 15);
imagesavealpha($im, true);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 25, $black);
$trans_colour = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $trans_colour);
// The text to draw
$text = $_GET['text'];
// Replace path by your own font path
$font = 'catriel regular.ttf';
// Add some shadow to the text
imagettftext($im, 9, 0, 13, 16, $black, $font, $text);
// Add the text
imagettftext($im, 9, 0, 12, 15, $white, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
ph利用imagecreatetruecolor动态生成高清图片代码
代码如下:
//实例用我们用imagecreatetruecolor
header ('Content-type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
//我把这个一起 - 结合较好的例子,然后动态生成的文本。但是,与此成立,我能得到透明背景以及工作。
//实例二imagecreatetruecolor
header('Content-type: image/png');
// Create the image
$im = imagecreatetruecolor(175, 15);
imagesavealpha($im, true);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 25, $black);
$trans_colour = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $trans_colour);
// The text to draw
$text = $_GET['text'];
// Replace path by your own font path
$font = 'catriel regular.ttf';
// Add some shadow to the text
imagettftext($im, 9, 0, 13, 16, $black, $font, $text);
// Add the text
imagettftext($im, 9, 0, 12, 15, $white, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
/*
实例三创建透明图片
如果你想创建一个PNG图像*透明*,其中的背景是完全透明的,所有行动发生在借鉴,除此之外,然后执行下列操作:
*/
$png = imagecreatetruecolor(800, 600);
imagesavealpha($png, true);
$trans_colour = imagecolorallocatealpha($png, 0, 0, 0, 127);
imagefill($png, 0, 0, $trans_colour);
$red = imagecolorallocate($png, 255, 0, 0);
imagefilledellips教程e($png, 400, 300, 400, 300, $red);
header("Content-type: image/png");
imagepng($png);
你要做的就是创建一个真正的彩色图像,确保阿尔法保存状态是,然后填写一个颜色,也经历了阿尔法级别设置为完全透明(127)的图像。
从上面的代码产生的巴新将有一个完全透明的背景(一红色圆圈拖到Photoshop中的图像,以了解自己)
The resulting PNG from the code above will have a red circle on a fully transparent background (drag the image into Photoshop to see for yourself)
[3]php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
//上传文件类型列表
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 200000; //上传文件大小限制, 单位BYTE
$path_im = "prod_img/"; //生成大图保存文件夹路径
$path_sim = "prod_simg/"; //缩略图保存文件夹路径
$watermark = 1; //是否加水印(1为加水印,其他为不加水印);
$watertype = 1; //水印类型(1为文字,2为图片)
$waterstring = "[url=http://www.jy17.com/]http://www.jy17.com/[/url]"; //水印字符串
$waterimg = "water.png"; //水印图片文件路径
$waterclearly = 100; //水印透明度0-100,数字小透明高
$imclearly = 100; //图片清晰度0-100,数字越大越清晰,文件尺寸越大
$simclearly = 75; //缩略图清晰度0-100,数字越大越清晰,文件尺寸越大
$smallmark = 1; //是否生成缩略图(1为加生成,其他为不);
$dst_sw = 80; //定义缩略图宽度,高度我采用等比例缩放,所以只要比较宽度就可以了
?>
<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')
{
if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
//是否存在文件
{
echo "图片不存在!";
exit;
}
$file = $_FILES["upfile"];
if($max_file_size < $file["size"])
//检查文件大小
{ $max_file_size = $max_file_size/1000;
echo "文件太大,超过 ".$max_file_size." KB!";
exit;
}
if(!in_array($file["type"],$uptypes))
//检查文件类型
{
echo "文件类型不符!".$file["type"];
exit;
}
if(!file_exists($path_im))
//检查上传目录是否存在,不存在创建
{
mkdir($path_im);
}
if(!file_exists($path_sim))
//检查缩略图目录是否存在,不存在创建
{
mkdir($path_sim);
}
$filename = $file["tmp_name"];
$im_size = getimagesize($filename);
$src_w = $im_size[0];
$src_h = $im_size[1];
$src_type = $im_size[2];
$pinfo = pathinfo($file["name"]);
$filetype = $pinfo['extension'];
$all_path = $path_im.time().".".$filetype; //路径+文件名,目前以上传时间命名
if (file_exists($all_path))
{
echo "同名文件已经存在了";
exit;
}
if(!move_uploaded_file ($filename,$all_path))
{
echo "移动文件出错";
exit;
}
$pinfo = pathinfo($all_path);
$fname = $pinfo[basename];
echo "<font color=red>已经成功上传</font><br>文件名: <font color=blue>".$all_path."</font><br>";
echo "宽度:".$src_w."px ";
echo "长度:".$src_h."px ";
echo "<br> 大小:".$file["size"]." bytes";
switch($src_type)//判断源图片文件类型
{
case 1://gif
$src_im = imagecreatefromgif($all_path);//从源图片文件取得图像
break;
case 2://jpg
$src_im = imagecreatefromjpeg($all_path);
break;
case 3://png
$src_im = imagecreatefrompng($all_path);
break;
//case 6:
//$src_im=imagecreatefromwbmp($all_path);
//break;
default:
die("不支持的文件类型");
exit;
}
if($watermark == 1)
{
//$iinfo = getimagesize($all_path,$iinfo);
$dst_im = imagecreatetruecolor($src_w,$src_h);
//根据原图尺寸创建一个相同大小的真彩色位图
$white = imagecolorallocate($dst_im,255,255,255);//白
//给新图填充背景色
$black = imagecolorallocate($dst_im,0,0,0);//黑
$red = imagecolorallocate($dst_im,255,0,0);//红
$orange = imagecolorallocate($dst_im,255,85,0);//橙
imagefill($dst_im,0,0,$white);
imagecopymerge($dst_im,$src_im,0,0,0,0,$src_w,$src_h,100);//原图图像写入新建真彩位图中
//imagefilledrectangle($dst_im,1,$src_h-15,80,$src_h,$white);
switch($watertype)
{
case 1: //加水印字符串
imagestring($dst_im,5,5,$src_h-20,$waterstring,$orange);//文字水印,字体5号颜色橙色,位于背景图左下角
break;
case 2: //加水印图片
$lim_size = getimagesize($waterimg); //取得水印图像尺寸,信息
switch($lim_size[2]) //判断水印图片文件类型
{
case 1://gif
$src_lim = imagecreatefromgif($waterimg); //取得水印图像
break;
case 2://jpg
$src_lim = imagecreatefromjpeg($waterimg);
break;
case 3://png
$src_lim = imagecreatefrompng($waterimg);
break;
//case 6:
//$src_im=imagecreatefromwbmp($waterimg);
//break;
default:
die("不支持的文件类型");
exit;
}
$src_lw = ($src_w-$lim_size[0])/2; //水印位于背景图正中央width定位
$src_lh = ($src_h-$lim_size[1])/2; //height定位
imagecopymerge($dst_im,$src_lim,$src_lw,$src_lh,0,0,$lim_size[0],$lim_size[1],$waterclearly);// 合并两个图像,设置水印透明度$waterclearly
imagedestroy($src_lim);
break;
}
switch($src_type)
{
case 1:
imagegif($dst_im,$all_path,$imclearly);//生成gif文件,图片清晰度0-100
break;
case 2:
imagejpeg($dst_im,$all_path,$imclearly);//生成jpg文件,图片清晰度0-100
break;
case 3:
imagepng($dst_im,$all_path,$imclearly);//生成png文件,图片清晰度0-100
break;
//case 6:
//imagewbmp($dst_im,$all_path);
break;
}
//释放缓存
imagedestroy($dst_im);
}
if($smallmark == 1)
{
$sall_path = $path_sim.time().".".$filetype;
if (file_exists($sall_path))
{
echo "同名文件已经存在了";
exit;
}
if($src_w <= $dst_sw) // 原图尺寸 <= 缩略图尺寸
{
$dst_sim = imagecreatetruecolor($src_w,$src_h); //新建缩略图真彩位图
imagecopymerge($dst_sim,$src_im,0,0,0,0,$src_w,$src_h,100); //原图图像写入新建真彩位图中
}
if($src_w > $dst_sw) // 原图尺寸 > 缩略图尺寸
{
$dst_sh = $dst_sw/$src_w*$src_h;
$dst_sim = imagecreatetruecolor($dst_sw,$dst_sh); //新建缩略图真彩位图(等比例缩小原图尺寸)
imagecopyresampled($dst_sim,$src_im,0,0,0,0,$dst_sw,$dst_sh,$src_w,$src_h); //原图图像写入新建真彩位图中
}
switch($src_type)
{
case 1:
imagegif($dst_sim,$sall_path,$simclearly);//生成gif文件,图片清晰度0-100
break;
case 2:
imagejpeg($dst_sim,$sall_path,$simclearly);//生成jpg文件,图片清晰度0-100
break;
case 3:
imagepng($dst_sim,$sall_path,$simclearly);//生成png文件,图片清晰度0-100
break;
//case 6:
//imagewbmp($dst_sim,$sall_path);
break;
}
//释放缓存
imagedestroy($dst_sim);
}
//释放缓存
imagedestroy($src_im);
}
?>
php等比例生成缩略图函数2
代码如下:
function reSizeImg($imgSrc, $resize_width, $resize_height, $isCut=false) {
//图片的类型
$type = substr ( strrchr ( $imgSrc, "." ), 1 );
//初始化图象
if ($type == "jpg") {
$im = imagecreatefromjpeg ( $imgSrc );
}
if ($type == "gif") {
$im = imagecreatefromgif ( $imgSrc );
}
if ($type == "png") {
$im = imagecreatefrompng ( $imgSrc );
}
//目标图象地址
$full_length = strlen ( $imgSrc );
$type_length = strlen ( $type );
$name_length = $full_length - $type_length;
$name = substr ( $imgSrc, 0, $name_length - 1 );
$dstimg = $name . "_s." . $type;
$width = imagesx ( $im );
$height = imagesy ( $im );
//生成图象
//改变后的图象的比例
$resize_ratio = ($resize_width) / ($resize_height);
//实际图象的比例
$ratio = ($width) / ($height);
if (($isCut) == 1) //裁图
{
if ($ratio >= $resize_ratio) //高度优先
{
$newimg = imagecreatetruecolor ( $resize_width, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height );
ImageJpeg ( $newimg, $dstimg );
}
if ($ratio < $resize_ratio) //宽度优先
{
$newimg = imagecreatetruecolor ( $resize_width, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio) );
ImageJpeg ( $newimg, $dstimg );
}
} else //不裁图
{
if ($ratio >= $resize_ratio) {
$newimg = imagecreatetruecolor ( $resize_width, ($resize_width) / $ratio );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height );
ImageJpeg ( $newimg, $dstimg );
}
if ($ratio < $resize_ratio) {
$newimg = imagecreatetruecolor ( ($resize_height) * $ratio, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height );
ImageJpeg ( $newimg, $dstimg );
}
}
ImageDestroy ( $im );
}
最新技术文章: