
获取文件大小不需要安装额外的模块,用-s *** 作符即可:
假设文件路径在变量$file_path中,那么$file_size文件大小可以用如下语句获得:
$file_size = -s $file_path;
得到的结果单位为Byte(字节),如果要换算成KB,则将结果除1024,如果要换算成MB,则再除1024,以此类推。
要获取的尺寸,可以用模块 Image::Size
use Image::Size;
my ($globe_x, $globe_y) = imgsize($file_path);
拖拽的过程就不说了,这里主要说一下如何在前端获取到的相关信息。
html5里有一个fileReader的全局变量,用来读取本地文件,比如txt,img等,下面是一个简单的代码。
function checkFile(files){var file = files[0];
var reader = new FileReader();
// show表示<div id='show'></div>,用来展示预览的
if(!/image\/\w+/test(filetype)){
showinnerHTML = "请确保文件为图像类型";
return false;
}
// onload是异步 *** 作
readeronload = function(e){
showinnerHTML = '<img src="'+etargetresult+'" alt="img">';
}
readerreadAsDataURL(file);
}
这样就能够在不上传到服务器的前提下预览。当然,这个问题的重点是获取的原始尺寸,html5里还提供了两个变量来获取:naturalWidth和naturalHeight,这两个分别来获取的原始宽度和原始高度。
在上面的例子中,就能通过下面的方式获取到:
var width = etargetnaturalWidth;var height = etargetnaturalHeight;
还有一种情况就是,如果已经存在页面里的,怎么获取到原始尺寸呢,可以这样:
var img = documentgetElementsByTagName('img')[0]; // 获取到var width = imgnaturalWidth;
var height = imgnaturalHeight;
1, CvSize cvGetSize( const CvArr arr ) 返回矩阵或图像的行数和列数,如果是图像就返回ROI的大小。
2, void cvGetRawData( const CvArr arr, uchar data, int step=NULL, CvSize roi_size=NULL )添充给输出变量数组的底层信息。所有的输出参数是可选的 , 因此这些指针可设为NULL 如果数组是设置了ROI的 IplImage 结构, ROI参数被返回。
3, CvRect cvGetImageROI( const IplImage image )返回图像ROI 坐标 如果没有ROI则返回矩形值为 cvRect(0,0,image->width,image->height)。
简单方法就是 ActualHeight SacleY还有一个方法稍微麻烦些,就是用 GeneralTransformTransform(Point point),或者TransformBounds大概思路看下面的方法。public Rect GetBounds(FrameworkElement of, FrameworkElement from){// Might throw an exception if of and from are not in the same visual treeGeneralTransform transform = ofTransformToVisual(from);return transformTransformBounds(new Rect(0, 0, ofActualWidth, ofActualHeight));}
大小,是指的像素数?还是指文件的大小?
如果像素数,就是长宽。
如果文件大小,可以用FileInfo类来得到文件大小。
FileInfo fi = new FileInfo("c:\1jpg");
fiLenght 就是这个文件的大小。
这个FileInfo类还可以得到很多其他的文件属性,如是否只读等。
2楼用打开文件来得到文件大小,很不必要。
获得文件大小大概有两种解决方法:
(一)使用documentgetElementById或者documentcreateElement的或者var img=new Image();
然后在onreadystatechange事件里检查大小
但这种代码通用性不强浏览器兼容存在问题一直无法解决
(二)使用FSO控件,但这样存在安全问题
<div id="photoyn"><input id="file1" type="file" onchange="ShowSize(thisvalue)" />
<script type="text/javascript">
function ShowSize(files){
var fso,f;
fso=new ActiveXObject("ScriptingFileSystemObject");
f=fsoGetFile(files);
var mySize = fsize/1024;
alert(mySize+" K ");
var myName = fName;
var myPath = fPath;
var myDrive = fDrive;
var myType = ftype;
var myAttributes = fAttributes;
var myDateCreated = fDateCreated;
}
</script>
所以说要在客户端检测文件大小没有实现方法。
最终解决方案还是在服务器端检测,在上传的过程中,在服务器的内存中进行判断并返回信息给客户端。
以上就是关于如何在 Perl 中获取图象文件的尺寸和文件大小全部的内容,包括:如何在 Perl 中获取图象文件的尺寸和文件大小、html5拖拽图片上传,怎么获得图片原始尺寸、opencv怎样获得图片文件大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)