当前位置:首页 » 编程语言 » php获取图片宽高

php获取图片宽高

发布时间: 2022-09-02 11:30:27

① 基于HTML5的多图Ajax上传php后台接收并获取图片宽高等信息

//但是为什么我用file_exists()判断文件是否存在时,得到的结果却是不存在呢
这句话后面加一句
$file='../uploads/' . $file;

你都把文件存成这个文件了 还用原来的文件名判断能行吗
后面的错误也是一样的

也可以直接把后面两个$file改掉
if(!file_exists('../uploads/' . $file)){

$src_info = @getimagesize('../uploads/' . $file);

② 请问怎样用php 正则表达式取设置宽和高的[img][/img]标签里面的图片地址

用php给你运行了一个

$txt='[img=442,296]图片地址1[/img]
[img=300,188]图片地址2[/img]
[img=120,206]图片地址3[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';//这里修改下,加上一个?防止以单行文本导致的定界符不准问题
$arr=[];
preg_match_all($re,$txt,$arr);
var_mp($arr);

运行结果如下

phptest.php
array(3){
[0]=>
array(3){
[0]=>
string(32)"[img=442,296]图片地址1[/img]"
[1]=>
string(32)"[img=300,188]图片地址2[/img]"
[2]=>
string(32)"[img=120,206]图片地址3[/img]"
}
[1]=>
array(3){
[0]=>
string(7)"442,296"
[1]=>
string(7)"300,188"
[2]=>
string(7)"120,206"
}
[2]=>
array(3){
[0]=>
string(13)"图片地址1"
[1]=>
string(13)"图片地址2"
[2]=>
string(13)"图片地址3"
}
}

//增加一个矩阵转换
$txt='[img=442,296]图片地址1[/img][img=300,188]图片地址2[/img][img=120,206]图片地址3[/img][img=120,206]wwww[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';

var_mp(preg_match_all_to_array($re,$txt));

functionpreg_match_all_to_array($re,$txt)
{
$arrs=[];
preg_match_all($re,$txt,$arrs);
if($arrs===false)
return$arrs;
//移除到总匹配数据
array_shift($arrs);
$return=[];
//获取矩阵纵长
$arrs_longitudinal=count($arrs);
for($i=0;$i<$arrs_longitudinal;$i++){
//获取单列横长
$arrs_transverse=count($arrs[$i]);
for($j=0;$j<$arrs_transverse;$j++){
$return[$j][$i]=$arrs[$i][$j];
unset($arrs[$i][$j]);
}
unset($arrs[$i]);
}
return$return;
}

③ 求救:php 上传图片时,获取图片的大小

不要用$_FILES['file_upload']['name'],用$_FILES['file_upload']['tmp_name']
文件上传后,php是先保存在/tmp/底下。可以通过$_FILES['file_upload']['tmp_name']来获取这个文件名。这个时候你是可以随意地对这个临时文件运行各种命令,包括获取图片大小。

④ php怎么高效获取远程图片尺寸

/**
*获取远程图片的宽高和体积大小
*
*@paramstring$url远程图片的链接
*@paramstring$type获取远程图片资源的方式,默认为curl可选fread
*@paramboolean$isGetFilesize是否获取远程图片的体积大小,默认false不获取,设置为true时$type将强制为fread
*@returnfalse|array
*/
functionmyGetImageSize($url,$type='curl',$isGetFilesize=false)
{
//若需要获取图片体积大小则默认使用fread方式
$type=$isGetFilesize?'fread':$type;

if($type=='fread'){
//或者使用socket二进制方式读取,需要获取图片体积大小最好使用此方法
$handle=fopen($url,'rb');

if(!$handle)returnfalse;

//只取头部固定长度168字节数据
$dataBlock=fread($handle,168);
}
else{
//据说CURL能缓存DNS效率比socket高
$ch=curl_init($url);
//超时设置
curl_setopt($ch,CURLOPT_TIMEOUT,5);
//取前面168个字符通过四张测试图读取宽高结果都没有问题,若获取不到数据可适当加大数值
curl_setopt($ch,CURLOPT_RANGE,'0-167');
//跟踪301跳转
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
//返回结果
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$dataBlock=curl_exec($ch);

curl_close($ch);

if(!$dataBlock)returnfalse;
}

//将读取的图片信息转化为图片路径并获取图片信息,经测试,这里的转化设置jpeg对获取png,gif的信息没有影响,无须分别设置
//有些图片虽然可以在浏览器查看但实际已被损坏可能无法解析信息
$size=getimagesize('data://image/jpeg;base64,'.base64_encode($dataBlock));
if(empty($size)){
returnfalse;
}

$result['width']=$size[0];
$result['height']=$size[1];

//是否获取图片体积大小
if($isGetFilesize){
//获取文件数据流信息
$meta=stream_get_meta_data($handle);
//nginx的信息保存在headers里,apache则直接在wrapper_data
$dataInfo=isset($meta['wrapper_data']['headers'])?$meta['wrapper_data']['headers']:$meta['wrapper_data'];

foreach($dataInfoas$va){
if(preg_match('/length/iU',$va)){
$ts=explode(':',$va);
$result['size']=trim(array_pop($ts));
break;
}
}
}

if($type=='fread')fclose($handle);

return$result;
}

//测试的图片链接
echo'<pre>';
$result=myGetImageSize('http://s6.mogujie.cn/b7/bao/120630/2kpa6_kqywusdel5bfqrlwgfjeg5sckzsew_345x483.jpg_225x999.jpg','curl');
print_r($result);
echo'<hr/>';
$result=myGetImageSize('http://s5.mogujie.cn/b7/bao/120629/6d3or_kqytasdel5bgevsugfjeg5sckzsew_801x1193.jpg','fread');
print_r($result);
echo'<hr/>';
$result=myGetImageSize('https://gss0..com/7LsWdDW5_xN3otqbppnN2DJv/zhengmingjiang/pic/item/1c5f338c6d22d797503d92f9.jpg','fread',true);
print_r($result);
echo'<hr/>';
$result=myGetImageSize('http://www.vegandocumentary.com/wp-content/uploads/2009/01/.png','curl',true);
print_r($result);
echo'<hr/>';
$result=myGetImageSize('http://jiaoyou.ai9475.com/front/templates/jiaoyou/styles/default/image/ad_pic_1.gif','fread');
print_r($result);

⑤ php如何实时缩小图片大小

PHP中缩放图像:

有两种改变图像大小的方法.

(1):ImageCopyResized() 函数在所有GD版本中有效,但其缩放图像的算法比较粗糙.

(2):ImageCopyResampled(),其像素插值算法得到的图像边缘比较平滑.质量较好(但该函数的速度比
ImageCopyResized() 慢).

两个函数的参数是一样的.如下:

ImageCopyResampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);

ImageCopyResized(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);

它们两个都是从原图像(source)中抓取特定位置(sx,sy)复制图像qu区域到目标t
图像(destination)的特定位置(dx,dy)。另外dw,dh指定复制的图像区域在目标图像上的大小,sw,sh指定从原图像复制的图像区域
的大小。如果有ps经验的话,就相当于在原图像选择一块区域,剪切移动到目的图像上,同时有拉伸或缩小的操作。

例一:

(本例子是将图片按原大小的4/1的大小显示)

<?php
// 指定文件路径和缩放比例
$filename = 'test.jpg';
$percent = 0.5;
// 指定头文件Content type值
header('Content-type: image/jpeg');
// 获取图片的宽高
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// 创建一个图片。接收参数分别为宽高,返回生成的资源句柄
$thumb = imagecreatetruecolor($newwidth, $newheight);
//获取源文件资源句柄。接收参数为图片路径,返回句柄
$source = imagecreatefromjpeg($filename);
// 将源文件剪切全部域并缩小放到目标图片上。前两个为资源句柄
imageresampled($thumb, $source, 0, 0, 0, 0, $newwidth,
$newheight, $width, $height);
// 输出给浏览器
imagejpeg($thumb);
?>

⑥ 寻求php高手!!php中如何得到图片的长和宽,并进行比较

$arr=getimagesize("bg.jpg");
$arr[0] //宽度
$arr[1] //高度

宽高比自己计算吧。

⑦ thinkphp 能不能再Action控制器里获取图片大小信息

使用getimagesize函数可以拿到图片的基本信息,具体操作如下:

$info=getimagesize("绝对路径");

$info[0]//图片宽度
$info[1]//图片高度

//$info里面还有其他信息,可通过var_mp($info)显示出来后看看。
热点内容
apkso反编译 发布:2025-01-15 23:53:20 浏览:4
买的腾讯服务器是装在电脑上吗 发布:2025-01-15 23:25:58 浏览:411
如何查看电脑的配置是不是i5 发布:2025-01-15 23:24:21 浏览:434
PI数据库 发布:2025-01-15 23:14:42 浏览:882
我的世界手机版暖心服务器 发布:2025-01-15 23:05:02 浏览:169
xts压缩比 发布:2025-01-15 23:02:41 浏览:424
怎么看联系人存储位置 发布:2025-01-15 22:47:14 浏览:794
旗舰560配置的是什么发动机 发布:2025-01-15 22:40:59 浏览:626
sql多表连接查询 发布:2025-01-15 22:33:12 浏览:221
android网络休眠 发布:2025-01-15 22:32:12 浏览:350