2012-08-22 14 views
7

मैंने इसे दिखाने के लिए एक सरल उदाहरण लिखा था।एचटीएमएल 5 कैनवास आकार और संकल्प

कैनवास का आकार 500px * 400px है। 480 की डीपीआई के साथ मेरी छवि का मूल आकार 200px * 160px है। मैं इस छवि को कैनवास में मूल आकार के साथ प्रदर्शित करना चाहता हूं ताकि इसका आकार बदला न जाए, जिससे छवि को धुंधला कर दिया जाएगा।

<html> 
<head> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#canvas").width(500); 
      $("#canvas").height(400); 

      var canvas = $("#canvas").get(0); 
      var ctx = canvas.getContext('2d'); 

      var image = new Image(); 
      image.src = "fish01.png"; // size is 200px * 160px 

      ctx.drawImage(image, 0, 0); // same with ctx.drawImage(image, 0, 0, 200, 160); 
     }); 
    </script> 
</head> 

<body style="background-color: #ccc; margin: 0px;"> 
    <canvas id="canvas" style="background-color: #66c"></canvas> 
</body> 
</html> 

उत्पत्ति छवि है::

200px * 160px

परिणाम है:

कोड यह enter image description here

मुझे लगता है कि यह अजीब है, क्योंकि कैनवास का आकार 500px है * 400 पीएक्स और छवि का आकार 200px * 160px है, छवि सी की सीमा से कैसे बाहर होगी anvas? और ऐसा लगता है कि छवि का आकार बदल गया है।

मैं जानना चाहता हूं कि मूल आकार के साथ छवि को कैसे प्रदर्शित किया जाए। कृपया कुछ सलाह दें। धन्यवाद!

उत्तर

12

के रूप में के बजाय गुण अपने कैनवास width और height जोड़ने का प्रयास करें: 1 मुझे लगता है कि:

$("#canvas").attr("width", "500px"); 
$("#canvas").attr("height", "400px"); 

इस कैनवास में drawable अंतरिक्ष को परिभाषित करता है, अन्यथा यह की तरह 2 कुछ करने के लिए चूक। मुझे पता है कि आप .width() और .height() का उपयोग कर रहे हैं, लेकिन उन्होंने एक यूनिटलेस वैल्यू सेट किया है, जबकि हम इसे .attr() के साथ स्पष्ट रूप से पिक्सल के रूप में परिभाषित कर रहे हैं।

Example jsFiddle

+0

यह काम करता है का उपयोग करें,! – Ovilia

4

आप कैनवस टैग करने के लिए width और height गुण नहीं जोड़ सकता हूँ, तो आप डिफ़ॉल्ट width और height साथ कैनवास पर प्रस्तुत करना। और

$("#canvas").width(500); 
$("#canvas").height(400); 

बस इस टैग को सीएसएस द्वारा फैलाएं।

तो <canvas id="canvas" width="500" height="400"></canvas>

बहुत बहुत धन्यवाद का उपयोग या $('#canvas').attr समारोह

+0

लेकिन इससे कोई फर्क नहीं पड़ता: '' – Ovilia

संबंधित मुद्दे