如何获取图片的宽度属性(从数据库读取文件名调用文件夹下的图片)
由于上传图片时没有获取它的宽度,现在要用到,请问有什么好办法可以解决?
图片文件名已大量存在于数据库里,实际图片文件在站点文件夹中。
关注
<img src="image/index.jpg" onload="javascript:if(this.width>500) this.width=500;">
上面的已经可以起到宽高都按比例缩小,不过你也可自己进行设定:
<img src="image/index.jpg" onload="javascript:if(this.width>500){this.height*=500/this.width;this.width=500;}">
楼上正解
up
或者你先显示,用settimeout函数检测图片大?gt;>2还詈没故窃谛词菘獾氖焙蛴胻his.width和this.height判断,大的不能写进去。还一种方法,给用户一个后台直接编辑的窗口,类似新闻发布系统那样
<html>
<head>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<meta name=GENERATOR content=Microsoft FrontPage 4.0>
<meta name=ProgId content=FrontPage.Editor.Document>
<title>test</title>
</head>
<body>
<script language=javascript type=text/javascript>
<!--
var imgObj;
function checkImg(theURL,winName){
// 对象是否已创建
if (typeof(imgObj) == object){
// 是否已取得了图像的高度和宽度
if ((imgObj.width != 0) && (imgObj.height != 0))
// 根据取得的图像高度和宽度设置弹出窗口的高度与宽度,并打开该窗口
// 其中的增量 20 和 30 是设置的窗口边框与图片间的间隔量
OpenFullSizeWindow(theURL,winName, ,width= + (imgObj.width+20) + ,height= + (imgObj.height+30));
else
// 因为通过 Image 对象动态装载图片,不可能立即得到图片的宽度和高度,所以每隔100毫秒重复调用检查
setTimeout(checkImg(' + theURL + ',' + winName + '), 100)
}
}
function OpenFullSizeWindow(theURL,winName,features) {
var aNewWin, sBaseCmd;
// 弹出窗口外观参数
sBaseCmd = toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,;
// 调用是否来自 checkImg
if (features == null || features == ){
// 创建图像对象
imgObj = new Image();
// 设置图像源
imgObj.src = theURL;
// 开始获取图像大小
checkImg(theURL, winName)
}
else{
// 打开窗口
aNewWin = window.open(theURL,winName, sBaseCmd + features);
// 聚焦窗口
aNewWin.focus();
}
}
//-->
</script>
<a href=Bt0085.jpg onClick=OpenFullSizeWindow(this.href,'','');return false>图片测试</a>
</body>
</html>
||||||有了Image()对象来获取图象的Width、Height,我就知道该如何去解决怎样实现图象的等比例缩放问题了。于是,我用k=Width/Height表示图象的比例值,当 K>=1时,表示width>heght,只要width不超过200px,则height一定<=200px;相反K<1,只要Height不超过150Px,width一定<=150px(正常情况下width/height=4:3)。所以只要K>=1限定width,K<1限定height就可以了。在测试一的帮助下,我很快有了下面的一段代码(测试二):
测试二
<script language=javascript type=text/javascript>
<!--
var imgObj;
function checkImg(theURL){
var width,height;
var k;
imgObj = new Image();
imgObj.src = theURL;
if (typeof(imgObj) == object){
if ((imgObj.width != 0) && (imgObj.height != 0))
{width=imgObj.width;
height=imgObj.height;
k=width/height;
document.write (k);
if(k>=1){
if (width>=200){
width=200;
height=width/k;
}}
else
{if (height>=200){
height=200;
width=k*height;
}
}
showimg(theURL,width,height);
}
else
setTimeout(checkImg(' + theURL + '), 100)
}
}
function showimg(theURL,x,y)
{
document.write(<imgsrc=+theURL++width=+x++height=+y+border='0'+ +align='left'>);
}
//-->
</script>
<script language=javascript>
checkImg(Bt0085.jpg);
</script>
<html>
<body>
<script>
var url = "http://community.csdn.net/images/CSDN_logo.GIF";
var img = document.createElement("IMG");
img.src = url;
img.style.visibility = "hidden";
img.attachEvent("onreadystatechange",go);
function go(){
alert(url + "" + img.width + " * " + img.height);
}
</script>
</body>
</html>
||||||一帮神人,其实很简单的函数在asp里用loadpicture函数,这个是vbs的函数,你用这个加载就可以了
loadpicture("test.gif")
这个函数具体怎么用啊,调试时提示:
Automation 操作中文件名或类名未找到: 'loadpicture'
up
http://www.moon-soft.com/program/doc/readelite750878.htm
'使用方法:
Picture2 = LoadPicture(FileName)
'判断 Picture2 图片大小,调整后,打印到 Picture1
Dim sHW1 As Single
sHW1 = Picture1.Height / Picture1.Width
'Picture1.AutoRedraw = True
'单位换算:一个象素单位大概相当于 15 个缇
'Picture1.Height = 指定高度(默认:缇)
'Picture1.Width = 指定宽度(默认:缇)
If Picture2.Height / Picture2.Width > sHW1 Then
'如果源图片高与宽比例大于需求比例,取原宽度和高度的中间区域
Picture1.PaintPicture Picture2.Picture, 0, 0, Picture1.Width, Picture1.Height, _
0, (Picture2.Height - Picture2.Width * sHW1) / 2, Picture2.Width, Picture2.Width * sHW1
Else
'否则,取宽度的中间区域和原高度
Picture1.PaintPicture Picture2.Picture, 0, 0, Picture1.Width, Picture1.Height, _
(Picture2.Width - Picture2.Height / sHW1) / 2, 0, Picture2.Height / sHW1, Picture2.Height
End If
Set Picture2.Picture = LoadPicture("") '清空
<script language="vbscript" runat="server">
set picture=loadpicture(server.mappath("01.jpg"))
'属性有width height
</script>
说明
可以由 LoadPicture 识别的图形格式有位图文件 (.bmp)、图标文件 (.ico)、行程编码文件 (.rle)、图元文件 (.wmf)、增强型图元文件 (.emf)、GIF (.gif) 文件和 JPEG (.jpg) 文件。
^^^^^>>^^^^^
>>>>^>>>>>>>>>>^
>>>>^>>>>>>^^^^^
>>>>^>>>>>>^>>^>>^
>>>>^>>>>>>^>>^>>^
>>>>^>>>>>>>>^>>^>>
>>^>>>>>>>>^>>>>>>^
loadpicture("test.gif")
这个函数具体怎么用啊,调试时提示:
Automation 操作中文件名或类名未找到: 'loadpicture'
-------------------------------------
mark
学习……
LoadPicture以后
使用Picture.Width和Picture.Height都要除以26.458以后才能得到正确的象素值
||||||回复人: FEB15(83年的矿泉水) ( ) 信誉:99 2005-04-12 16:19:00 得分: 0
&nbs