图像的处理

转载 2004年10月27日 16:30:00

图片缩略图
<?php
/*
 * 图片缩略图
 * $srcfile 源图片,$rate 缩放比,默认为缩小一半
 * 例如: resizeimage("zt32.gif",".1");
 */

function resizeimage($srcfile,$rate=.5){
 $size=getimagesize($srcfile);
 switch($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=imagecreatetruecolor($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);
 // 以 JPEG 格式将图像输出到浏览器或文件
 header("Content-type: image/jpeg");
 imagejpeg($im);
 //释放图片
 imagedestroy($im);
 imagedestroy($img);

}
?>

把图片存入mysql数据库
<?
/*
 * 把图片存入mysql数据库
 *
 #
 # 数据表的结构 `images`
 #

CREATE TABLE images (
  picid int(3) NOT NULL auto_increment,
  picdata longblob NOT NULL,
  pictext varchar(100) NOT NULL default '',
  PRIMARY KEY  (picid)
) TYPE=MyISAM;

 */
if(trim($picfile[0])!=""){
    $link=@mysql_connect("localhost","root","root");
    //连接,用你的具体连接名替换root,具体连接密码替换root
        if($link==false)
           {
     echo "<script>alert('连接数据库时发生错误,请稍后再试!')</script>";
           }
    $res=mysql_select_db("kkk");
        if($res==false)
           {
     echo "<script>alert('打开数据库时发生错误,请稍后再试!')</script>";
           }
  $tmpset=0; 
  // 存放成功加入的图片数目
  for($i=0;$i<=3;$i++)
      {
      // picfile[i]存放所提交的图片信息(文件路径)
      if(trim($picfile[$i])!="")
         {
         //读取数据
         $fp=fopen($picfile[$i],"r");
         $picdata=fread($fp,filesize($picfile[$i]));
         fclose($fp);
         //加上必要的标志符号
         $picdata=addslashes($picdata);
         //用具体的数据表名代替images
         //pictext[i]存放所提交的图片的文字说明
         $qu="insert into images(picdata,pictext) values('$picdata','$pictext[$i]')";
         $res=@mysql_query($qu,$link); 
               if($res==false)
                   {
       echo "<script>alert('图片 ".$i." 提交失败!')</script>";
                   continue;
                   } 
         $tmpset=$tmpset+1;                                
         }
       }
  echo "<script>alert('操作成功!实际入库图片数 ".$tmpset." 张')</script>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data" name="form1">
  <input type="file" name="picfile[]">
  文件说明
  <input type="text" name="pictext[]">
  <br>
  <input type="file" name="picfile[]">
  文件说明
<input type="text" name="pictext[]">
  <br>
  <input type="file" name="picfile[]">
  文件说明
<input type="text" name="pictext[]">
  <br>
  <input type="file" name="picfile[]">
  文件说明
<input type="text" name="pictext[]">
  <br>
  <input type="submit" name="Submit" value="提交">
</form>
</body>
</html>

显示存在mysql中的图片
<?
/*
 * 显示存在mysql中的图片
 * 在外部用<img src="displayimg.php?picid=1">来调用数据库中的第一张图片
 #
 # 数据表的结构 `images`
 #

CREATE TABLE images (
  picid int(3) NOT NULL auto_increment,
  picdata longblob NOT NULL,
  pictext varchar(100) NOT NULL default '',
  PRIMARY KEY  (picid)
) TYPE=MyISAM;

 */

$link=@mysql_connect("localhost","root","root");
mysql_select_db("kkk");
$qu="select picid,picdata from images where picid=$picid";
$res=@mysql_query($qu,$link);
$num=mysql_num_rows($res);
   if($num==0)
      {
      print "<br><br><br>";
      print "<p><b>没有这张图片!</b></p>";
      exit(); 
      }
$row=@mysql_fetch_row($res); 
header("Content-type:image/");
echo $row[1];
?>
GD图形库验证码
1、
              请输入右边的验证码:
              <input name="auth_number" type="text" size="4" maxlength="4" class="input1">
              <img src="auth_img.php" width="80" height="20" border=0 alt="">

2、auth_img.php
<?
session_start();

$img_width=80;
$img_height=20;

srand(microtime() * 100000);
for($ti=0;$ti<4;$ti++)
{
$new_number.=dechex(rand(0,15));
}

$_SESSION[check_auth_number]=$new_number;
$number_img=imageCreate($img_width,$img_height);
ImageColorAllocate($number_img,255,255,255);
for($i=1;$i<=128;$i++)
{
imageString($number_img,1,mt_rand(1,$img_width),mt_rand(1,$img_height),"*",imageColorAllocate($number_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
}
for($i=0;$i<strlen($HTTP_SESSION_VARS[check_auth_number]);$i++)
{
imageString($number_img,mt_rand(3,5),$i*$img_width/4+mt_rand(1,8),mt_rand(1,$img_height/4), $HTTP_SESSION_VARS[check_auth_number][$i],imageColorAllocate($number_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
header("Content-type: image/png");
ImagePng($number_img);
ImageDestroy($number_img);
?>

3、验证部份
function check_auth_number($auth_number)
{
if($auth_number!=$_SESSION[check_auth_number] || empty($_SESSION[check_auth_number]))
{
echo "<Script Language =/"JavaScript/">/n history.back();/n alert(/" 图片验证码错误 /");/n </Script> /n";
exit();
}
}

图像的模糊处理原理

最近微信上的那个给红包让看图片的小功能真的是异常火爆啊,我也忍不住去弄了一波,昨晚在看博客的时候发现有大牛发了一个相关的原理解释,我看完之后,赶紧自己记录学习一下。让我们来回顾下微信上的这个小功能的操...
  • rainbowchou
  • rainbowchou
  • 2016年01月27日 12:21
  • 2676

图像预处理与特征提取(1)——白化处理和直方图均衡化

我们从逐像素处理来开始讲诉图像预处理。我们将代表原始图像的二维矩阵标记为P P,其中的p ij  p_{ij}代表第i i行和第j j列的像素值,代表该像素点的灰度强度。逐像素处理返回的就是和P P尺...
  • jxwhg
  • jxwhg
  • 2015年12月05日 16:18
  • 3595

图像预处理: 规范化

概念 在自己获取的图像样本上,在网络的训练之前还需要做预处理操作。 预处理步骤: 操作均值0中心化(zero-center) 规范化(normalize) 效果图 原图: 预处...
  • JNingWei
  • JNingWei
  • 2017年10月12日 11:47
  • 468

POJ图像模糊处理

描述 给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1. 四周最外侧的像素点灰度值不变; 2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均...
  • Sylar2016
  • Sylar2016
  • 2017年02月28日 09:13
  • 365

Matlab处理图像的一般方法

Matlab是强大的数学问题处理软件,同时也是图像处理强有力的工具。本文通过几个实例具体介绍Matlab下如何进行图像处理。 (1)图像的读取与输出 Matlab读取图像的基本方法是 image...
  • Sync_hronize
  • Sync_hronize
  • 2015年04月06日 22:03
  • 669

opencv 图像分块处理

图像分块处理
  • chaihuimin
  • chaihuimin
  • 2016年09月22日 09:43
  • 2441

图像处理算法系列 第三章 图像模糊处理 (平滑处理)

本章主要讲图像处理中的模糊处理部分 英文叫做blur, 也叫做smootiing,  中文中叫做模糊或者平滑。 用过photoshop的人都应该知道,滤镜里面就有模糊这个选项,我们现在看看它是...
  • mlkiller
  • mlkiller
  • 2013年04月10日 14:51
  • 2830

数字图像处理,图像的伪彩色处理

主要功能是使灰度图中亮度越高的像素点,在伪彩色图中对应的点越趋向于红色;亮度越低,则对应的伪彩色越趋向于蓝色; 代码: clc; close all; clear; img=imread('oct.b...
  • EbowTang
  • EbowTang
  • 2015年04月15日 17:53
  • 2180

图像处理之高斯模糊

高斯模糊是一种两维的卷积模糊操作,在图像完成高斯模糊相对于均值模糊来说, 计算量会增加,但是高斯模糊可以实现一些特殊效果,特别是在图像噪声(非椒盐 噪声)消去方面,更是有着非常好的效果。一维高斯公...
  • jia20003
  • jia20003
  • 2012年02月05日 14:51
  • 24049

5.14 图像频域处理

5.14 图像频域处理 在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。在一些图...
  • yu132563
  • yu132563
  • 2015年02月10日 20:07
  • 1227
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图像的处理
举报原因:
原因补充:

(最多只允许输入30个字)