您当前的位置:首页 > 互联网教程

上传type中jpg是imagejpeg还是imagepjpeg

发布时间:2025-05-19 18:41:57    发布人:远客网络

上传type中jpg是imagejpeg还是imagepjpeg

一、上传type中jpg是image/jpeg还是image/pjpeg

1、一般不向数据库插入图片而是插入图片的src通过src找到图片然后显示。

2、$uptypes= array("image/jpg","image/jpeg","image/png","image/pjpeg","image/gif","image/bmp","image/x-png");

3、if($files["size"]>2097152){//图片大小判断

4、echo"<meta http-equiv='REFRESH' CONTENT='1;URL=pic.php'>";

5、if(!in_array($ftype,$uptypes)){//图片格式判断

6、echo"上传的图片文件格式不正确";

7、echo"<meta http-equiv='REFRESH' CONTENT='1;URL=pic.php'>";

8、$fname=$files["tmp_name"];//在服务器临时存储名称

9、$image_info= getimagesize($fname);

10、$str_name= pathinfo($name);//以数组的形式返回文件路劲的信息

11、$extname= strtolower($str_name["extension"]);//把字符串改为小写 extensiorn扩展名

12、$upload_dir="upload/";//upload文件夹

13、$file_name= date("YmdHis").rand(1000,9999).".".$extname;

14、$str_file=$upload_dir.$file_name;//文件目录

15、$con=mysql_connect("localhost","root","");

16、die(("数据库连接失败").mysql_error());

17、mysql_select_db("mywork",$con);

18、$sql="update user set picpath='$str_file' where user_name='$username'";//将图片地址插入数据库mywork

19、if(!file_exists($upload_dir)){

20、mkdir($upload_dir);//创建目录成功则返回true失败则返回flase

21、if(!move_uploaded_file($files["tmp_name"],$str_file)){//将上传的文件移动到新的目录要移动文件和文件新目录成功则返回true

22、echo"<meta http-equiv='REFRESH' CONTENT='1;URL=插入失败后希望跳转的页面>";

23、//echo"<img src=".$str_file.">";

24、echo"<meta http-equiv='REFRESH' CONTENT='1;URL=插入成功希望挑战的页面>";

二、php创建缩略图问题

1、其实PHP创建缩略图就是在PHP在原图片的基础上创建一张新的图片的过程,而用PHP创建图像的过程一般分成四部:

2、第一步:创建一张画布(只要是画图都需要一张画布的)

3、第二步:在画布画东西(可以画各种图形,如长方形,直线,等等,也可以在画布上写字啥的,或者画其他的图形)

4、第三步:画完图之后,将图片输出,将图片输出到浏览器,在浏览器显示出来,或者保存为一张新的图片(缩略图一般是保存为图片文件的)

5、第四步:因为创建画布时打开了文件流,所以要关闭资源,节省内存。(个人觉得你可以这样理解,打开了一画布,把它铺开了,画完了就把画布卷起来,收起来,不要占着铺的地方)

6、具体的代码如下:(这段代码来源于ThinkPHP的图像类)

7、*@paramstring$thumbname缩略图文件名

8、staticcreate($img,$thumbname,$type='',$maxWidth=200,$maxHeight=50)

9、$info=getimagesize($img);//获取原图的图像信息(长、宽、格式等)

10、$srcWidth=$info['width'];

11、$srcHeight=$info['height'];

12、$type=empty($type)?$info['type']:$type;

13、$scale=min($maxWidth/$srcWidth,$maxHeight/$srcHeight);//计算缩放比例

14、$width=(int)($srcWidth*$scale);

15、$height=(int)($srcHeight*$scale);

16、//载入原图(在原图的基础上创建画布,为第一步)

17、$createFun='ImageCreateFrom'.($type=='jpg'?'jpeg':$type);

18、if(!function_exists($createFun)){

19、if($type!='gif'&&function_exists('imagecreatetruecolor'))

20、$thumbImg=imagecreatetruecolor($width,$height);

21、$thumbImg=imagecreate($width,$height);

22、//png和gif的透明处理byluofei614

23、imagealphablending($thumbImg,false);//取消默认的混色模式(为解决阴影为绿色的问题)

24、imagesavealpha($thumbImg,true);//设定保存完整的alpha通道信息(为解决阴影为绿色的问题)

25、}elseif('gif'==$type){

26、$trnprt_indx=imagecolortransparent($srcImg);

27、$trnprt_color=imagecolorsforindex($srcImg,$trnprt_indx);

28、$trnprt_indx=imagecolorallocate($thumbImg,$trnprt_color['red'],$trnprt_color['green'],$trnprt_color['blue']);

29、imagefill($thumbImg,0,0,$trnprt_indx);

30、imagecolortransparent($thumbImg,$trnprt_indx);

31、if(function_exists("ImageCopyResampled"))

32、imagecopyresampled($thumbImg,$srcImg,0,0,0,0,$width,$height,$srcWidth,$srcHeight);

33、imagecopyresized($thumbImg,$srcImg,0,0,0,0,$width,$height,$srcWidth,$srcHeight);

34、$imageFun='image'.($type=='jpg'?'jpeg':$type);

35、$imageFun($thumbImg,$thumbname);

36、?>

你使用的时候直接用:

37、$thumb=Thumb::create('s.jpg','thumb_s.jpg',100,50);

希望我的回答你能满意

三、php图片可以等比例的缩放吗

在PHP网站开发过程中,如果你建立的网站涉及大量的图片处理,必然涉及到图片上传,缩放,而如何保持图片不失真,是很多初级PHP网站开发者比较头疼的一件事,今天David就和大家分享一下如何进行图片缩放。使用之前你需要下载安装GD库,以支持PHP图片处理。下面我们结合代码讲解具体的PHP图片缩放处理的思路。 1

56function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)

if(($maxwidth&&$pic_width>$maxwidth)||($maxheight&&$pic_height>$maxheight))

if($maxwidth&&$pic_width>$maxwidth)

$widthratio=$maxwidth/$pic_width;

if($maxheight&&$pic_height>$maxheight)

$heightratio=$maxheight/$pic_height;

if($resizewidth_tag&&$resizeheight_tag)

if($widthratio<$heightratio)

if($resizewidth_tag&&!$resizeheight_tag)

if($resizeheight_tag&&!$resizewidth_tag)

$newheight=$pic_height*$ratio;

if(function_exists("imagecopyresampled"))

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

imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);

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

imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);

}参数说明:$im图片对象,应用函数之前,你需要用imagecreatefromjpeg()读取图片对象,如果PHP环境支持PNG,GIF,也可使用imagecreatefromgif(),imagecreatefrompng();$maxwidth定义生成图片的最大宽度(单位:像素)$maxheight生成图片的最大高度(单位:像素)$name生成的图片名$filetype最终生成的图片类型(.jpg/.png/.gif)代码注释:第3~4行:读取需要缩放的图片实际宽高第8~26行:通过计算实际图片宽高与需要生成图片的宽高的压缩比例最终得出进行图片缩放是根据宽度还是高度进行缩放,当前程序是根据宽度进行图片缩放。如果你想根据高度进行图片缩放,你可以将第22行的语句改成$widthratio>$heightratio第28~31行:如果实际图片的长度或者宽度小于规定生成图片的长度或者宽度,则要么根据长度进行图片缩放,要么根据宽度进行图片缩放。第33~34行:计算最终缩放生成的图片长宽。第36~45行:根据计算出的最终生成图片的长宽改变图片大小,有两种改变图片大小的方法:ImageCopyResized()函数在所有GD版本中有效,但其缩放图像的算法比较粗糙。ImageCopyResamples(),其像素插值算法得到的图像边缘比较平滑,但该函数的速度比ImageCopyResized()慢。第47~49行:最终生成经过处理后的图片,如果你需要生成GIF或PNG,你需要将imagejpeg()函数改成imagegif()或imagepng()第51~56行:如果实际图片的长宽小于规定生成的图片长宽,则保持图片原样,同理,如果你需要生成GIF或PNG,你需要将imagejpeg()函数改成imagegif()或imagepng()。特别说明:GD库1.6.2版以前支持GIF格式,但因GIF格式使用LZW演算法牵涉专利权,因此在GD1.6.2版之后不支持GIF的格式。如果你是WINDOWS的环境,你只要进入PHP.INI文件找到extension=php_gd2.dll,将#去除,重启APACHE即可,如果你是Linux环境,又想支持GIF,PNG,JPEG,你需要去下载libpng,zlib,以及freetype字体并安装。OK,PHP图片压缩函数完成,最后我们概述一下整个处理的思路:通过计算实际图片的长宽与规定生成图片的长宽之间的缩放比例,根据实际的需求(按照宽度还是按照高度进行图片缩放)计算出最终生成图片的大小,然后应用PHP图片处理函数对图片进行处理,最后输出图片。以上就是关于PHP图片处理中如何对图片进行压缩并保持不失真的函数说明,有疑问或者好的建议欢迎给我留言,下次我将分享在PHP网站开发建设完成后,由于图片目录没有规划好,我们该如何对图片进行迁移的思路。