
var pic = new Image();
picsrc = ;
piconload = function () {
consolelog(picwidth);
}
项目的需求是上传一张,然后验证该的尺寸,如果跟预期的不符,就不给上传
首先,可以通过new FileReader(),再通过将上传的文件传给实例的readAsDataUrl(),当文件加载完成触发onload事件,传递event,通过eventtargetresult来获取的链接(base64格式的)
接着,new Image()实例,将上面获取的链接设置为的src属性,当加载完成触发onload事件就可以通过width、height属性来读取的长宽啦~~
的长宽相乘就是的大小。
的分辨率常见的有640 x 480、1024 x 768、1600 x 1200、2048 x 1536。在成像的两组数字中,前者为宽度,后者为的高度,两者相乘得出的是的像素。长宽比一般为4:3。
分辨率和图象的像素大小有直接的关系,一张分辨率为640 x 480的,那它的分辨率就达到了307200,也就是我们常说的30万像素,而一张分辨率为1600 x 1200的,它的像素就是200万。这样,就知道,分辨率表示的是在长和宽上占的点数的单位。
扩展资料:
常见的图像尺寸。
30万 640×480
50万 800×600
80万 1024×768 5” (35×5英寸)
130万 1280×960 6” (4×6英寸)
200万 1600×1200 8”(6×8英寸) 5”(35×5英寸)
310万 2048×1536 10”(8×10寸) 7”(5×7英寸)
430万 2400×1800 12”(10×12英寸) 8”(6×8英寸)
500万 2560×1920 12”(10×12英寸) 8”(6×8英寸)
600万 3000×2000 14”(11×14英寸) 10”(8×10寸)
800万 3264×2488 16”(12×16英寸) 10”(8×10寸)
1100万 4080×2720 20”(16×20英寸) 12”(10×12英寸)
1400万 4536×3024 24”(18×24英寸) 14”(11×14英寸)
获得文件大小大概有两种解决方法:
(一)使用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>
所以说要在客户端检测文件大小没有实现方法。
最终解决方案还是在服务器端检测,在上传的过程中,在服务器的内存中进行判断并返回信息给客户端。
简单方法就是 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));}
1、控制大小和位置
/
可以直接调用getWindow(),表示获得这个Activity的Window
对象,这样这可以以同样的方式改变这个Activity的属性
/
Window dialogWindow = dialoggetWindow();
WindowManagerLayoutParams lp = dialogWindowgetAttributes();
dialogWindowsetGravity(GravityLEFT | GravityTOP);
/
lpx与lpy表示相对于原始位置的偏移
当参数值包含GravityLEFT时,对话框出现在左边,所以lpx就表示相对左边的偏移,负值忽略
当参数值包含GravityRIGHT时,对话框出现在右边,所以lpx就表示相对右边的偏移,负值忽略
当参数值包含GravityTOP时,对话框出现在上边,所以lpy就表示相对上边的偏移,负值忽略
当参数值包含GravityBOTTOM时,对话框出现在下边,所以lpy就表示相对下边的偏移,负值忽略
当参数值包含GravityCENTER_HORIZONTAL时
,对话框水平居中,所以lpx就表示在水平居中的位置移动lpx像素,正值向右移动,负值向左移动
当参数值包含GravityCENTER_VERTICAL时
,对话框垂直居中,所以lpy就表示在垂直居中的位置移动lpy像素,正值向右移动,负值向左移动
gravity的默认值为GravityCENTER,即GravityCENTER_HORIZONTAL |
GravityCENTER_VERTICAL
本来setGravity的参数值为GravityLEFT | GravityTOP时对话框应出现在程序的左上角,但在
我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
GravityLEFT, GravityTOP, GravityBOTTOM与GravityRIGHT都是如此,据边界有一小段距离
/
lpx = 100; // 新位置X坐标
lpy = 100; // 新位置Y坐标
lpwidth = 300; // 宽度
lpheight = 300; // 高度
lpalpha = 07f; // 透明度
// 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
// dialogonWindowAttributesChanged(lp);
dialogWindowsetAttributes(lp);
/
将对话框的大小按屏幕大小的百分比设置
/
// WindowManager m = getWindowManager();
// Display d = mgetDefaultDisplay(); // 获取屏幕宽、高用
// WindowManagerLayoutParams p = getWindow()getAttributes(); // 获取对话框当前的参数值
// pheight = (int) (dgetHeight() 06); // 高度设置为屏幕的06
// pwidth = (int) (dgetWidth() 065); // 宽度设置为屏幕的095
// dialogWindowsetAttributes(p);
<img id="_img" src="abcjpg" >
<script type="text/javascript">
function getWH(){
var id="_img";
var w=0;
var h=0;
// 具有较好的通用性
var real= documentgetElementById(id)height || documentgetElementById(id)styleheight || documentgetElementById(id)offsetHeight;
h=parseInt(real);
real= documentgetElementById(id)width || documentgetElementById(id)stylewidth || documentgetElementById(id)offsetWidth;
w=parseInt(real);
alert("w:"+w+" ; h:"+h)
}
getWH();
</script>
以上就是关于在JS中图片的真实尺寸是如何获取的全部的内容,包括:在JS中图片的真实尺寸是如何获取的、js如何获取图片的尺寸、怎么知道照片的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)