您的位置:

php图像编程(php绘制图片)

本文目录一览:

php的介绍及Php有什么优势?

介绍: 

PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。 PHP安装它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。最重要的是PHP可以用C、C++进行程序的扩展!

优势:

1、开放的源代码: 所有的PHP源代码事实上都可以得到。 2、PHP是免费的。 和其它技术相比,PHP本身免费。 3、php的快捷性 程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言,编辑简单,实用性强,更适合初学者。 4、跨平台性强: 由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。 5、效率高: PHP消耗相当少的系统资源。 6、图像处理: 用PHP动态创建图像 7、面向对象: 在php4,php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。 8、专业专注: PHP支持脚本语言为主,同为类C语言。

PHP网站上传图片自动压缩,怎么编程啊,求指

这里会使用到三个文件:

connect.php:连接数据库

test_upload.php:执行SQL语句

upload_img.php:上传图片并压缩

三个文件代码如下:

连接数据库:connect.php

?php

$db_host = '';

$db_user = '';

$db_psw = '';

$db_name = '';

$db_port = '';

$sqlconn=new mysqli($db_host,$db_user,$db_psw,$db_name);

$q="set names utf8;";

$result=$sqlconn-query($q);

if (mysqli_connect_errno()) {

 printf("Connect failed: %s\n", mysqli_connect_error());

 exit();

}

?

当然使用一些封装的数据库类也是可以的。

执行SQL语句:test_upload.php

?php

require ("connect.php");

require ("upload_img.php");

$real_img=$uploadfile; 

$small_img=$uploadfile_resize;

$insert_sql = "insert into img (real_img,small_img) values (?,?)";

$result = $sqlconn - prepare($insert_sql);

$result - bind_param("ss", $real_img,$small_img);

$result - execute();

?

上传图片并压缩:upload_img.php

?php 

//设置文件保存目录

$uploaddir = "upfiles/"; 

//设置允许上传文件的类型

$type=array("jpg","gif","bmp","jpeg","png"); 

 

//获取文件后缀名函数 

function fileext($filename) 

 return substr(strrchr($filename, '.'), 1); 

 

//生成随机文件名函数 

function random($length) 

 $hash = 'CR-'; 

 $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; 

 $max = strlen($chars) - 1; 

 mt_srand((double)microtime() * 1000000); 

 for($i = 0; $i  $length; $i++) 

 { 

  $hash .= $chars[mt_rand(0, $max)]; 

 } 

 return $hash; 

 

$a=strtolower(fileext($_FILES['filename']['name'])); 

 

//判断文件类型 

if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type)) 

 $text=implode(",",$type); 

 $ret_code=3;//文件类型错误

 $page_result=$text;

 $retArray = array('ret_code' = $ret_code,'page_result'=$page_result);

 $retJson = json_encode($retArray);

 echo $retJson;

 return;

 

//生成目标文件的文件名 

else

 $filename=explode(".",$_FILES['filename']['name']); 

 do

 { 

  $filename[0]=random(10); //设置随机数长度 

  $name=implode(".",$filename); 

  //$name1=$name.".Mcncc"; 

  $uploadfile=$uploaddir.$name; 

 } 

 

 while(file_exists($uploadfile)); 

 

 if (move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile)) 

 { 

  if(is_uploaded_file($_FILES['filename']['tmp_name'])) 

  {

   $ret_code=1;//上传失败

  } 

 else

 {//上传成功

  $ret_code=0;

 } 

 } 

$retArray = array('ret_code' = $ret_code);

$retJson = json_encode($retArray);

echo $retJson;

}

 

//压缩图片

 

$uploaddir_resize="upfiles_resize/";

$uploadfile_resize=$uploaddir_resize.$name;

 

//$pic_width_max=120;

//$pic_height_max=90;

//以上与下面段注释可以联合使用,可以使图片根据计算出来的比例压缩

 

$file_type=$_FILES["filename"]['type'];

 

function ResizeImage($uploadfile,$maxwidth,$maxheight,$name)

{

 //取得当前图片大小

 $width = imagesx($uploadfile);

 $height = imagesy($uploadfile);

 $i=0.5;

 //生成缩略图的大小

 if(($width  $maxwidth) || ($height  $maxheight))

 {

  /*

  $widthratio = $maxwidth/$width;

  $heightratio = $maxheight/$height;

   

  if($widthratio  $heightratio)

  {

   $ratio = $widthratio;

  }

  else

  {

    $ratio = $heightratio;

  }

   

  $newwidth = $width * $ratio;

  $newheight = $height * $ratio;

  */

  $newwidth = $width * $i;

  $newheight = $height * $i;

  if(function_exists("imagecopyresampled"))

  {

   $uploaddir_resize = imagecreatetruecolor($newwidth, $newheight);

   imagecopyresampled($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  }

  else

  {

   $uploaddir_resize = imagecreate($newwidth, $newheight);

   imagecopyresized($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  }

   

  ImageJpeg ($uploaddir_resize,$name);

  ImageDestroy ($uploaddir_resize);

 }

 else

 {

  ImageJpeg ($uploadfile,$name);

 }

}

 

 

 

if($_FILES["filename"]['size'])

{

 if($file_type == "image/pjpeg"||$file_type == "image/jpg"|$file_type == "image/jpeg")

 {

  //$im = imagecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']);

  $im = imagecreatefromjpeg($uploadfile);

 }

 elseif($file_type == "image/x-png")

 {

  //$im = imagecreatefrompng($_FILES[$upload_input_name]['tmp_name']);

  $im = imagecreatefromjpeg($uploadfile);

 }

 elseif($file_type == "image/gif")

 {

  //$im = imagecreatefromgif($_FILES[$upload_input_name]['tmp_name']);

  $im = imagecreatefromjpeg($uploadfile);

 }

 else//默认jpg

 {

  $im = imagecreatefromjpeg($uploadfile);

 }

 if($im)

 {

  ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);

  

  ImageDestroy ($im);

 }

?

请按照现实情况更改connect.php,test_upload.php中对应的信息。

望采纳,谢谢。

为什么有那么多人选择PHP编程语言

开放源代码

所有的PHP源代码事实上都可以得到。

免费性

和其它技术相比,PHP本身免费且是开源代码。

快捷性

程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。

跨平台性强

由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS、Android等平台

效率高

PHP消耗相当少的系统资源。

图像处理

用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用image magick进行图像处理。

面向对象

在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。

专业专注

PHP支持脚本语言为主,同为类C语言。