切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
2012-12-5[复制链接]
发表于 2012-12-5 09:22:56 | 显示全部楼层 |!read_mode!
PHP中图像处理
一个网站如果全是文字没图片的话
那么你肯定会觉得灰常单调吧。

在自己网站中  加入点激情点东西  看起来也会漂亮很多
比如 苍井空啦  泷泽罗拉 呀 。。。等等等 图片

GetImageSize();此函数是用来获取图形的大小
此函数带返回值  返回值不同代表图片格式不同
1=GIF,2=JPG,3=PNG(这三个是PHP函数手册里列出的)

我翻了下PHP手册  列出了更详细的  这是为什么
1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD
6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order)
9 = JPC,10 = JP2。11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
有这么多  格式 头会晕过去啊。。。

哪个手册更好用呀?
注意 : 此函数并不需要GD图形函数库(  我不清楚GD图形函数库是什么)
<?php

  $image="1.jpg";
  echo "<img src=".$image.">";
  $temp=getimagesize($image);
  echo "<p>";
  echo "该图象的长为: ";
  echo $temp[0];
  echo "<p>";
  echo "该图象的宽为: ";
  echo $temp[1];
  echo "<p>";
  echo "该图象的格式为: ";
  switch($temp[2])
  {
      case 1:
          echo "GIF图象";
          break;
      case 2:
          echo "JPG/JPGE图象";
          break;
      case 3:
          echo "PNG图象";
          break;
      default:
          echo "未知图象格式";
          break;
  }

?>
为什么$temp[0] 会输出它的长度    echo $temp[1];会输出它的宽
完全无解、、、

imagecreate() ;创建一个图形
在用此函数前是不是必须加个header("Content-type: image/png");

header("Content-type: image/png");
作用是什么?
创建一个图形  怎么确定你要的 图片在指定位置?  
后面那些数字 位置参数咋学才能精确。
imagecolorallocate 为一幅图像分配颜色
<?
  Header("Content-type:image/png");
  $im=imagecreate(500,500);
  $black=imagecolorallocate($im,0,0,0);
  $white=imagecolorallocate($im,255,255,255);
  $yellow=imagecolorallocate($im,255,255,0);
  $blue=imagecolorallocate($im,0,0,255);
  $red=imagecolorallocate($im,255,0,0);
  $zi=imagecolorallocate($im,255,0,255);
  $background_color=imagecolorallocate($im,255,255,255);
  imageline($im,10,10,350,10,$white);
  imagerectangle($im,20,20,200,100,$blue);//ImageRectangle ---  画一个矩形
  imagefilledrectangle($im,100,200,200,300,$yellow);//imagefilledrectangle画一矩形并填充
  imageellipse($im,50,50,150,150,$zi);//imageellipse画一个椭圆
  imagefilledellipse($im,50,50,150,350,$white);//填充这个椭圆
  imagepng($im);//这个应该是选择图形格式吧
  imagedestroy($im);
?>
imagedestroy() 释放与 image 关联的内存
为嘛最后要用这个函数。。。


<?
  function resizeimage($srcfile,$rate=.3)//自建了一个函数
  {
      $size=getimagesize($srcfile);
      switch($size[2])//从size返回不同的值  建立不同图形 我想问里面为什么是个2
      {
          case 1:
              $img=imagecreatefromgif($srcfile);
              break;
          case 2:
              $img=imagecreatefromjpeg($srcfile);
              break;
          case 3:
              $img=imagecreatefrompng($srcfile);
              break;
      }
      $srcw=imagesx($img);
      $srch=imagesy($img);
      $dstw=floor($srcw*$rate);
      $dsth=floor($srch*$rate);
      $im=imagecreate($dstw,$dsth);
      $black=imagecolorallocate($im,255,255,255);
      imagefilledrectangle($im,0,0,$dstw,$dsth,$black);
      imagecopyresized($im,$img,0,0,0,0,$dstw,$dsth,$srcw,$srch);
      imagejpeg($im);
      imagedestroy($im);
      imagedestroy($img);
  }
  $im1="1.jpg";
  resizeimage($im1);
?>
上面这段代码目地是建立一个 图形的缩略图
麻烦详解下  谢谢
还有我还没弄明白什么是代码驼峰

发表于 2012-12-6 11:21:48 | 显示全部楼层
  1. <?php

  2. $gif_path = "./hacker.gif";
  3. $gif_info = GetImageSize($gif_path);

  4. echo "<pre>";
  5. print_r($gif_info);
  6. echo "</pre>";
复制代码
返回
Array(    [0] => 300    [1] => 300    [2] => 1    [3] => width="300" height="300"    [bits] => 3    [channels] => 3    [mime] => image/gif)

返回的是一个他规定好格式的数据,他设定的哪个下标里存储的是什么值,只需要用的时候调用不同的下标来获取就可以了;

Header("Content-type: image/png"); /*通知浏览器,要输出图像*/

imagedestroy() 释放与 image 关联的内存;意思是如果你的php应用上有功能是创建很多的图片而不是直接显示现有的图片,这样就会占用很大的内存空间,如果不释放的话会影响系统性能,就好比有的语言有垃圾回收机制一样,就是为了考虑系统的负载,防止php进程卡死;

代码驼峰的意思就是说代码整体看起来有缩进和凸起就像骆驼的峰一样,其实别的没啥意思,哈哈

开启GD库可参考 http://www.akcms.com/manual/open-close-gd.htm
GD库最常见的作用就是 在显示验证码的时候如果不开会不显示图片格式的验证码



发表于 2012-12-6 11:39:30 | 显示全部楼层
  1. <?
  2.   $im1="hacker.gif";
  3.   resizeimage($im1);
  4.   
  5.   
  6.   
  7.   function resizeimage($srcfile,$rate=.3)//自建了一个函数
  8.   {
  9.       $size=getimagesize($srcfile);//获取大小及属性
  10.       switch($size[2])//从size返回不同的值  建立不同图形 这个2下标里存的是图片的类型(gif/jpg等)
  11.       {
  12.           case 1://如果类型是gif
  13.               $img=imagecreatefromgif($srcfile);//从 GIF 文件或 URL 新建一图像
  14.               break;
  15.           case 2://如果类型是jpeg
  16.               $img=imagecreatefromjpeg($srcfile);//从 JPEG 文件或 URL 新建一图像
  17.               break;
  18.           case 3://如果类型是png
  19.               $img=imagecreatefrompng($srcfile);//从 PNG 文件或 URL 新建一图像
  20.               break;
  21.       }
  22.       $srcw=imagesx($img);//取得图像宽度
  23.       $srch=imagesy($img);//取得图像高度
  24.       $dstw=floor($srcw*$rate);
  25.       $dsth=floor($srch*$rate);
  26.       $im=imagecreate($dstw,$dsth);//新建一个基于调色板的图像
  27.       $black=imagecolorallocate($im,255,255,255);//为一幅图像分配颜色
  28.       imagefilledrectangle($im,0,0,$dstw,$dsth,$black);//画一矩形并填充上面准备好的
  29.       imagecopyresized($im,$img,0,0,0,0,$dstw,$dsth,$srcw,$srch);//拷贝部分图像并调整大小
  30.       imagejpeg($im);//从image 图像以 filename 为文件名创建一个 JPEG 图像
  31.       imagedestroy($im);//销毁一图像
  32.       imagedestroy($img);//销毁一图像
  33.   }
  34. ?>
复制代码
你从哪看的这个代码?完整吗   想实现的是什么

操千曲而后晓声,观千剑而后识器。

代码区

GMT+8, 2020-9-29 21:16

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部