Zazzle.comのFlashベースの製品エディタと同様の機能を持つjQueryプラグインを作成しようとしています。私が知る必要があるのは、context.drawImage()
キャンバス機能を使用して、イメージを挿入し、それを歪ませることなくキャンバスに収まるようにサイズ変更する方法です。イメージをHTML5キャンバスに合わせてサイズ変更
画像は500x500pxでキャンバスですが、何らかの理由で500x500を画像の大きさに設定すると大きくなります。その他の建設的な批判も歓迎
(function($) {
jQuery.fn.productEditor = function(options) {
var defaults = {
'id' : 'productEditor',
'width' : '500px',
'height' : '500px',
'bgImage' : 'http://www.wattzup.com/projects/jQuery-product-editor/sampleProduct.jpg'
};
return this.each(function() {
var $this = $(this)
var options = $.extend(defaults, options);
// Create canvas
var canvas = document.createElement('canvas');
// Check if their browser supports the canvas element
if(canvas.getContext) {
// Canvas defaults
var context = canvas.getContext('2d');
var bgImage = new Image();
bgImage.src = options.bgImage;
bgImage.onload = function() {
// Draw the image on the canvas
context.drawImage(bgImage, 0, 0, options.width, options.height);
}
// Add the canvas to our element
$this.append(canvas);
// Set ID of canvas
$(canvas).attr('id', options.id).css({ width: options.width, height: options.height });
}
// If canvas is not supported show an image that says so
else {
alert('Canvas not supported!');
}
});
};
})(jQuery);
:
はここで、これまでに私の完全なコードです。