2012-12-13 10 views
5

से पहले छवि का आकार प्राप्त करें मेरे पास अपलोड करने के बाद थंबनेल के रूप में प्रस्तुत छवियों की एक सूची है। मेरे पास जो मुद्दा है वह मुझे पूरी तरह से अपलोड की गई छवियों के आयामों की आवश्यकता है, ताकि गलत आकार के आकार में मैं आकार बदलने का कार्य चला सकूं।jQuery/जावास्क्रिप्ट - लोड

समारोह कि

function buildEditList(json, galleryID) 
{ 
    //Hide the list 
    $sortable = $('#sortable'); 
    $sortable.hide(); 

    for(i = 0, j = json.revision_images.length; i < j; i++) { 
     $sortable.append(
      "<li id='image_" + json.revision_images[i].id + "'><a class=\"ui-lightbox\" href=\"../data/gallery/" 
      + galleryID 
      + "/images/album/" 
      + json.revision_images[i].OrgImageName 
      + "\"><img id=\"" 
      + json.revision_images[i].id 
      + "\" alt=\"\" src=\"../data/gallery/" 
      + galleryID 
      + "/images/album/" 
      + json.revision_images[i].OrgImageName 
      + "\"/></a></li>" 
     ).hide(); 
    } 
    //Set first and last li to 50% so that it fits the format 
    $('#sortable li img').first().css('width','50%'); 
    $('#sortable li img').last().css('width', '50%'); 

    //Fade images back in 
    $sortable.fadeIn("fast",function(){ 
     var img = $("#703504"); // Get my img elem -- hard coded at the moment 
     var pic_real_width, pic_real_height; 
     $("<img/>") // Make in memory copy of image to avoid css issues 
      .attr("src", $(img).attr("src")) 
      .load(function() { 
       pic_real_width = this.width; // Note: $(this).width() will not 
       pic_real_height = this.height; // work for in memory images. 
     }); 
     alert(pic_real_height); 
    }); 

} 

छवि सूची बनाता है मैं इस stackoverflow पद से समाधान का उपयोग करने की कोशिश कर दिया गया है, लेकिन यह काम करने के लिए प्राप्त करने के लिए अभी तक है, या यह सिर्फ मेरे कोड हो सकता है। यदि आपके पास इस पर कोई विचार है तो मैं सहायता का उपयोग कर सकता हूं। वर्तमान में अलर्ट वापस अपरिभाषित हो रहा है।

+0

कुछ ऐसा लगता है जो मैं सर्वर की तरफ करता हूं। – Jeroen

+0

कृपया गलत क्या हो रहा है के बारे में अधिक विशिष्ट हो। – Mark

+0

@ मार्क - वर्तमान में मेरी चेतावनी (pic_real_width) वापस अपरिभाषित हो रही है। – Bungdaddy

उत्तर

2

प्राकृतिक हेइट या प्राकृतिकविड्थ नामक एक नई जेएस विधि है जो आप जिस जानकारी को खोज रहे हैं उसे वापस कर देगी। दुर्भाग्य से यह पुराने आईई संस्करणों में काम नहीं करेगा। यहां एक फ़ंक्शन है जिसे मैंने कुछ महीने पहले बनाया था जो आपके लिए काम कर सकता है। मैंने उदाहरण के लिए नीचे अपना कोड थोड़ा सा जोड़ा:

function getNatural($mainImage) { 
    var mainImage = $mainImage[0], 
     d = {}; 

    if (mainImage.naturalWidth === undefined) { 
     var i = new Image(); 
     i.src = mainImage.src; 
     d.oWidth = i.width; 
     d.oHeight = i.height; 
    } else { 
     d.oWidth = mainImage.naturalWidth; 
     d.oHeight = mainImage.naturalHeight; 
    } 
    return d; 
} 

var img = $("#703504"); 
var naturalDimension = getNatural(img); 
alert(naturalDimension.oWidth, naturalDimension.oHeight)​ 
+0

बहुत बढ़िया आदमी, बिल्कुल मुझे क्या चाहिए। – Bungdaddy

+8

मैं नहीं देख सकता कि यह क्यों काम करेगा। कम से कम * कुछ * चौड़ाई/ऊंचाई के लिए सर्वर से वापस लौटा दिया जाना चाहिए। यह वापसी अतुल्यकालिक होगी जबकि ऊपर दिया गया कोड लिखा गया है जैसे कि यह सिंक्रोनस था, इसलिए ब्राउज़र द्वारा पहले से कैश किए गए चित्रों के साथ काम कर सकता है। लेकिन बिना छवियों के बारे में कैसे? –

+1

मैं अपनी सभी छवियों के लिए प्राकृतिक विड्थ और 0 की ऊंचाई प्राप्त करता रहता हूं। क्या @ बीटरूट-बीटरूट की टिप्पणी शायद कुछ है? – Henrik