HTML5 Canvas ile Oranlı Resim Boyutlandırma
Bugün bir javascript ile eklenti yazayım, ama içinde de mutlaka HTML5‘le beraber gelen Canvas etiketi olsun dedim ve işe koyuldum 🙂
Bu eklentide amaç; Canvas etiketini kullanarak bir resmi oranlı olarak büyütüp küçültmektir. Bunu aslında CSS ile bir satır kod ile halledebilirdik. Ama bazen sınırları zorlamak gerekebiliyor 🙂 Kodumuzun örneği aşağıdadır.
Örnek :
<script type="text/javascript"> window.onload = function(){ Boyutlandir("image",1); } function Boyutlandir(id, oran) { var img = document.getElementById(id); img.src = img.getAttribute("original"); var canvas = document.createElement("canvas"); canvas.width = img.width*oran; canvas.height = img.height*oran; canvas.getContext("2d").drawImage(img, 0, 0, img.width*oran, img.height*oran); img.src = canvas.toDataURL(); } </script> <style type="text/css"> button:first-child{ margin-left:0; } button{ margin-left:30px; } </style> </head> <body> <div style="width:600px;"> <div style=" height:450px;"> <img src="foto.jpg" original="foto.jpg" id="image" /><br /> </div> <div style="text-align:center;"> TIKLA : <button onclick="Boyutlandir('image',0.25)">25%</button> <button onclick="Boyutlandir('image',0.50)" style="margin-left:30px;">50%</button> <button onclick="Boyutlandir('image',0.75)">75%</button> <button onclick="Boyutlandir('image',1)">100%</button> <button onclick="Boyutlandir('image',1.25)">125%</button> </div> </div> </body> </html>
Açıklamalar:
4. satır : 1. parametre: body altındaki img etiketinin idsi. 2. parametre: resmin yeni oranı.
8. satır : body içindeki img etiketini hedefledik.
9. satır : Orjinal boyutlu resme tekrar dönüyoruz.
11. satır : Canvas nesnesini oluşturup, boyutlandırıyoruz.
15. satır: İlgili resmi bu satırda canvas elementine çizdirip boyutlandırıyoruz.
18. satır : toDataURL() fonksiyonu; şuna benzer “data:image/png;base64,iVBORw0″ resmin büyüklüğüne ve kalitesine bağlı olarak eşdeğer veri döndürüyor. Bunu img etiketinin yoluna atayarak oranına göre boyutlanmış resmi oluşturmuş oluyoruz.
Bunlar dışında; body altında bulunan butonlar ile “Boyutlandir” fonksiyonuna değişik oranlı parametreler göndererek amacımıza ulaşmış oluyoruz.
Demo:
Link: http://www.yusufdoru.com/demo/html-5-canvas-resim-boyutlandirma