10/10/2018, 10:40

có cách nào lấy kích thước ảnh bằng javascript ?

không bít trong javascript có hỗ trợ chức năng lấy kích thuoc của ảnh không hay là nó hong hỗ trợ
lenggiauit viết 12:49 ngày 10/10/2018
document.getElementById('').clientWidth
document.getElementById('').clientHeight
dokhacluan viết 12:55 ngày 10/10/2018
thank bác , post lại đoạn code này
<img src="http://vnexpress.net/Files/Subject/3B/A0/0F/E1/sun3.jpg" id="a">
<script>
var k=document.getElementById('a').clientWidth;
alert(k);
var k_1=document.getElementById('a').clientHeight;
alert(k_1);
</script>

ichuot viết 12:53 ngày 10/10/2018
<script language='JavaScript'>
function getImgSize(imgSrc)
{
var newImg = new Image();
newImg.src = imgSrc;
var height = newImg.height;
var width = newImg.width;
alert ('The image size is '+width+'*'+height);
}
</script>

<IMG id='demoImg' src="2010-08-11_001057.jpg">
<BUTTON onclick="getImgSize(document.getElementById('demoI mg').src);">Get Image Size</BUTTON></body>
Hoặc

<script type="text/javascript">
function getImgSize(id){
var pic = document.getElementById(id);
var h = pic.offsetHeight;
var w = pic.offsetWidth;
alert ('The image size is '+w+'*'+h);
}
</script>
<img id='demoImg' src="http://www.goldenstudy.com/bbs/uploadimg//20060228144500426.jpg">
<input type="button" onclick="getImgSize('demoImg')" value="Get Image Size">
2 cách trên bị lỗi! khi đưa nó lên mạng. Vì chỉ dùng dc 2 cách trên khi hình đã load hoàn chỉnh. Giải pháp khác..

function getWidthAndHeight() {
alert("'" + this.name + "' is " + this.width + " by " + this.height + " pixels in size.");
return true;
}
function loadFailure() {
alert("'" + this.name + "' failed to load.");
return true;
}
var myImage = new Image();
myImage.name = "someimg.jpg";
myImage.onload = getWidthAndHeight;
myImage.onerror = loadFailure;
myImage.src = "someimg.jpg";
dokhacluan viết 12:43 ngày 10/10/2018
@ichuot: thấy trong code của bạn có this.width , nên mình nghĩ thêm dc cách lấy rông cao bức ảnh
<img src="http://vnexpress.net/Files/Subject/3B/A0/0F/E1/sun3.jpg" id="a">
<script>
var k=document.getElementById('a');
alert(k.width);
alert(k.height);
</script>
thuyduongcd viết 12:52 ngày 10/10/2018
<img src="http://vnexpress.net/Files/Subject/3B/A0/0F/E1/sun3.jpg" id="a">
<script>
var k=document.getElementById('a');
alert(k.width);
alert(k.height);
</script>
Như thế chỉ lấy được kích thước của thẻ img chứ không phải kích thước ảnh.
dokhacluan viết 12:45 ngày 10/10/2018
ok , đã test lại , sữa code theo thuyduong
<script>
function getImageSize(src){
var img= new Image();
img.src=src;
while (!img.complete){
img.src=src+ Math.random();
}
var height = img.height;
var width = img.width;
return width+" x "+height;
}
var l=getImageSize("http://vnexpress.net/Files/Subject/3B/A0/0F/E1/sun3.jpg");
alert(l);
</script>
chay trên w3school (khung test html đó thanh cong) , nhung thu trong htdocs thì chết , sao nó cu bảo stop sript , bác dùng vòng lặp vo hạn ah

@ichuot :
function getWidthAndHeight() {
alert("'" + this.name + "' is " + this.width + " by " + this.height + " pixels in size.");
return true;
}
function loadFailure() {
alert("'" + this.name + "' failed to load.");
return true;
}
var myImage = new Image();
myImage.name = "someimg.jpg";
myImage.onload = getWidthAndHeight;
myImage.onerror = loadFailure;
myImage.src = "someimg.jpg";
bác viết lại thành 1 hàm được hong và viết 1 ví dụ hoàn chỉnh luôn (lấy địa chỉ ảnh trên mạng đi)
thuyduongcd viết 12:51 ngày 10/10/2018
Sorry! Để sửa lại
Code:
<html>
<body>

<script>

function getImageSize(src){
var img= new Image();
img.src=src;
var status=img.complete
if (!status){
       return "failed"
}else{
      return img.width + " X " +img.height;
}
}
var l=getImageSize("http://vnexpress.net/Files/Subject/3B/A0/0F/E1/sun3.jpg");
alert(l);
</script> 
</body>
</html>
dokhacluan viết 12:56 ngày 10/10/2018
hình như còn 1 chút trục trặc , trong trường hop bác đã mở firefox (truy cập trang đó truoc 1 lần)--> bác test chạy đúng

nhưng bác thử tắt hết firefox , sau đó mở lại firefox --> truy cập vào trang đó --> nó alert false

ie6 còn mệt hơn , trên trình duyet đó bác nhấn f5 thì cũng ra false

bác xem lại thử
thuyduongcd viết 12:47 ngày 10/10/2018
Nếu bạn sử dụng chung với 1 thẻ image trước khi gọi hàm này thì sẽ ổn thôi
Bài liên quan
0