ãã©ã³ã¹ãã©ãŒã«ã¹ãæ©èœããŠããŸããã
img class = "imageobject" id = "3" src = "images / large / food.png" style = "-webkit-transformïŒmatrixïŒ0.5ã0.42ã-0.42ã0.5ã120ã52ïŒ;"
ç§ã¯ãã®æ©èœãã²ã©ãå¿ èŠã§ãã ãããªãã¯ã¹ãå®è£ ããŠã³ãŒããç·šéããããšããŸãããã倱æããŸããã
ç§ã¯ããããã®æ©èœã§åäœãããŸãã
é¢æ°renderImageïŒctxãelementãimageãboundsãbordersãmatxïŒ{}
ããã§ããã1ã€ã®ãã©ã¡ãŒã¿ãŒãmatxããæž¡ããŸããã ãã®ç»åã®ãããªãã¯ã¹å€ã§ãã ãã ãããã®ãããªãã¯ã¹ããctxãã«å²ãåœãŠãããšã¯ã§ããŸããã
åãåé¡ãããã¹ããã£ãŒã«ãã§ãçºçããŠããŸãã
ç§ãå©ããŠãã ããã
å€æã¯ãŸã ãµããŒããããŠããŸããã
åé¿çããããŸã-ãããã§ã¯ãããŸããããããã§ãïŒpngããã³jpgç»åã§æ©èœããŸãïŒã åºæ¬çãªããžãã¯ïŒå転ããç»åãèŠã€ãããã®å Žæã眮ãæããPHPæ©èœãæäŸããŸãã
ã¹ããã1ïŒCSSå€æãµããŒããæäŸããjQueryé¢æ°ãå«ããŸãã
(function ($) {
$.fn.rotationDegrees = function () {
var matrix = this.css("-webkit-transform") ||
this.css("-moz-transform") ||
this.css("-ms-transform") ||
this.css("-o-transform") ||
this.css("transform");
if(typeof matrix === 'string' && matrix !== 'none') {
var values = matrix.split('(')[1].split(')')[0].split(',');
var a = values[0];
var b = values[1];
var angle = Math.round(Math.atan2(b, a) * (180/Math.PI));
} else { var angle = 0; }
return angle < 0 ? angle+360 : angle;
};
}(jQuery));
ã¹ããã2ïŒå転ããç»åã®å ŽæãPHP URLã«çœ®ãæããŸãïŒhtml2canvasã¬ã³ããªã³ã°ã®åã«ãããå«ããŸãïŒã
$("img").each(function(){
rot = $(this).rotationDegrees();
if (rot != 0)
$(this).attr("src", "/rotateimg.php?rotate=" + rot + "&loc=" + $(this).attr("src"));
});
ã¹ããã3ïŒå転æ©èœãæäŸããrotateimg.phpãäœæãã
<?php
$loc = $_GET['loc'];
$rot = -$_GET['rotate'];
$path = "/web/images/path"; // $_SERVER['DOCUMENT_ROOT'] ?
$source = NULL;
if (substr($loc, -3) == "png")
$source = imagecreatefrompng($path . $loc);
else if (substr($loc, -3) == "jpg") {
$source = imagecreatefromjpeg($path . $loc);
}
imagealphablending($source, false);
imagesavealpha($source, true);
$img = imagerotate($source, $rot, imageColorAllocateAlpha($source, 0, 0, 0, 127));
imagealphablending($img, false);
imagesavealpha($img, true);
imagepng($img);
?>
ã圹ã«ç«ãŠã°å¹žãã§ãã =ïŒ
90床ã180床ããŸãã¯270床å転ããç»åã®ãµããŒããè¿œå ããŸããã https://github.com/mjaggard/html2canvas/tree/simple-rotation
ç»å以å€ã®å転ã¯äžè¬çã«ãµããŒããããŠããããä»ã®å€æããµããŒããããŠããŸããïŒãã ããäžéšã®å€æãšå転ã¯ããã©ãŠã¶ãŒã§äœæ¥ã§ããããããšã«ããhtml2canvasã§ãµããŒããããŠããŸãïŒã
賌èªããã ããã§ãimages / htmlã®ããè¯ãå転ãœãªã¥ãŒã·ã§ã³ãæ¢ããŠããŸãã ãã ãããã®ãããªãã¯ã¹ã®ãã®ã§ã¯ãªããã床ããæäœããã«ã¯-webkit-transformãå¿ èŠã§ãã
ããããšã
ãæšæ¶ã
ã¹ã±ãŒãªã³ã°ã¯ã©ãã§ããïŒ æ£ããã¬ã³ããªã³ã°ãããªãæ¡å€§çž®å°ãããããã¹ãããããŸãã ãã£ã©ã¯ã¿ãŒã¯ãã¹ãŠäžç·ã«çª®å±ã«ãªããŸãã ãã®ã¹ã±ãŒãªã³ã°æ©èœãå®è£ ããããã®æ£ããæ¹åã誰ãã«æããŠããããŸããïŒ
å転ããå¿ èŠããããŸã:(
å€æã¹ã±ãŒã«ã®å®è£ ã¯çŽ æŽãããã§ãããã ãã©ã³ããç»è³ªãäžããããšãã§ããã®ã§ããšãŠãéèŠãªãã€ã³ãã ãšæããŸãã ããšãã°ãããã¹ããã¬ã³ããªã³ã°ããŠãã©ãŠã¶ã§ãºãŒã ãããšãå質ãéåžžã«æªããªããŸãã ããã«ãããhtml2canvas-pluginãããã¹ããšãã£ã¿ãªã©ã«ã圹ç«ã€å¯èœæ§ããããŸãã
@niklasvh ïŒè¿ãå°æ¥ããã®æ©èœãå®è£ ããäºå®ã¯ãããŸããïŒ ç§ã¯ãããæè¬ãããã®ããã«uaã«å¯ä»ãããŸãã
ããã«ã¡ã¯ããã®æ©èœã¯æ¬åœã«ãã®åªããããŒã«ãèŠéããŠããŸãããã®æ©èœã®èšç»ã¯ãããŸããïŒ
@ mjaggard-ç»åå転ã³ãŒããæè¿ã®ããŒãžã§ã³ã®ã©ã€ãã©ãªã«çµ±åã§ããå¯èœæ§ã¯ãããŸããïŒ
ç§ã¯ããªãã®ã³ãŒããèŠãŸããããããŠããã¯éåžžã«ç°ãªã£ãæ§é ãæã£ãŠããããã§ãã
ããããšãïŒ
ããã
ãã®æ©èœãããã«è¿œå ããäºå®ã¯ãããŸããïŒ
ãšãŠã䟿å©ã§ã!!
ã©ããããããšã ïŒ
ããã
å転ã¯ãã§ã«ïŒwebkit-transformïŒãã®ããŒãžã§ã³ã§æ©èœããŠããŸã
äŸã
ãã®ã¯ã©ã¹ãä»»æã®divã«è¿œå ãããã§ã«ãã¹ãæžã¿ã§ããããšã確èªããŸãã
.rt {-ms-transformïŒrotateïŒ7degïŒ; / * IE 9 _ /
-webkit-transformïŒrotateïŒ7degïŒ; / _ ChromeãSafariãOpera * /
å€æïŒrotateïŒ7degïŒ;}
19:02ã®æ°Žææ¥ã2015幎1æ7æ¥ã«ã¯ãdscarteland [email protected]
æžããŸããïŒ
ããã
ãã®æ©èœãããã«è¿œå ããäºå®ã¯ãããŸããïŒ
ãšãŠã䟿å©ã§ã!!ã©ããããããšã ïŒ
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -69021663
ã
@liteelipsç§ããããã¹ãã®å転ãå¿ èŠã§ã:(
å転ããdivã®ã¹ã¯ãªãŒã³ã·ã§ããã®è§£æ±ºçãèŠã€ãã人ã¯ããŸããïŒ
+1
ãã¹ãŠã®ãã©ãŠã¶ã§å転ãšå€æãè¡ãå®å šã«æ©èœããã³ãŒãã ãã¡ã€ã«ãæ·»ä»ã§ããŸããã ãã¡ã€ã«[email protected]ãåéããããã«ç§ã«ã¡ãŒã«ããŠãã ãã
çŽ æŽãããããããšãïŒ
ãã«ãªã¯ãšã¹ããè¡ãããJS Fiddleã䜿çšããããšãæ€èšããŸãããïŒ
ãã ã
ãããã ïŒïŒ å転ãšå€æãšããŠãã¡ã€ã«ãååŸã§ããŸãã
ä»ããªãã®ããã«åããŠããŸãã
3æ32åPMã®ç«ã2015幎9æ29æ¥ã«ã¯ãArindam Mojumder [email protected]
æžããŸããïŒ
ãã¹ãŠã®ãã©ãŠã¶ã§å転ãšå€æãè¡ãå®å šã«æ©èœããã³ãŒãã ã§ããŸãã
ãã¡ã€ã«ãæ·»ä»ããŸãã ãã¡ã€ã«ãåéããããã«ç§ã«ã¡ãŒã«ãããããã®ãªã³ã¯ã«ã¢ã¯ã»ã¹ããŠãã ãããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -144011634
ã
_ã¢ããŒã«ã·ã³_
_PHP / MySQL Developer_
_ãã§ã€ã¹ããã¯
https://www.facebook.com/pages/Kodework/741342762609839 // LinkedIn
https://www.linkedin.com/company/kodework_
_Eã¡ãŒã«ïŒ_amarã [email protected] [email protected]
_ã¢ãã€ã«ïŒ* + 91 7040980700
*éšéïŒ*éçº
*ãµããŒãïŒ_support @ kodework.com
_äœæïŒ_E-4 Vicente GreensãSocoroã
ãŽã¢403521ãããŒããªã ã
_ãŠã§ããµã€ãïŒ
ããã«ã¡ã¯ãç¹ã«IEã§ãå€æïŒå転ïŒãæ©èœãããã®ã«ãèŠåŽããŠããŸãã å®æãããã£ã³ãã¹ã«ã¯å®éã«ã¯å転ããèŠçŽ ãå«ãŸããŠããŸãããéåžžã¯èŠçŽ ã®ååãã衚瀺ãããŠããŸããã
ã¹ã¯ãªããã®ã¹ã¿ã€ã«ã¯æ¬¡ã®ãšããã§ãã
$('#<id of element>').htmlToCanvas({
width: 1000, // dimension of your html page
height: 600, // dimension of your html page
complete: function(){
var image = this.htmlToCanvas.toBinrary(); // will return base64 image data
$('<img emelent>').attr("src",image); // use this as a src of any img element
}
});
htmlToCanvas.jsãã¡ã€ã«
ïŒé¢æ°ïŒ$ïŒ{
var canvasCounter = 0;
var canvas, cnvs, ctx, elementArr, callback, _this;
$.fn.htmlToCanvas = function(options){
var defaults = {width: 1000, height: 600, complete: null};
callback = $.extend(defaults, options);
_this = this;
return this.each(function(){
createImage('#'+$(this)[0].id);
});
}
$.fn.htmlToCanvas.toBinrary = function() {
return cnvs.toDataURL("image/jpeg",1);
// return cnvs.toDataURL({
// format: 'png',
// left: 0,
// top: 0,
// width: 200,
// height: 150
// })
}
$.fn.htmlToCanvas.removeCanvas = function() {
canvas.remove();
}
function createImage(divobj)
{
////console.log(divobj);
if(canvas) canvas.remove();
canvas = $('<canvas id="canvas" width="' + callback.width + '" height="'+ callback.height +'" style="display: block;"></canvas>');
$('body').append(canvas);
cnvs = document.getElementById('canvas')
ctx = cnvs.getContext("2d");
ctx.fillStyle = $(divobj).css('background-color');
ctx.fillRect(0,0,callback.width, callback.height);
canvasCounter = 0;
elementArr = [];
$(divobj + " img").each(function(index){
elementArr.push({type: 'img', zindex: $(this).css('z-index'), imgobj: $(this)});
console.log($(this));
});
$(divobj + " div").each(function(index){
elementArr.push({type: 'txt', zindex: $(this).css('z-index'), imgobj: $(this)});
});
elementArr.sort(function (a, b) {
//var a_zindex = a && a.zindex || "",
//b_zindex = b && b.zindex || "";
//return a_zindex.localeCompare(b_zindex);
var dif = Number(a.zindex - b.zindex);
//alert('cal '+dif);
return (dif);
});
//--------- background images ----------
if($(divobj).css('background-image') != 'none'){
var background = new Image();
var back_source = $(divobj).css('background-image');
back_source = back_source.substring(4, back_source.length-1);
back_source = back_source.replace('"', '');
back_source = back_source.replace('"', '');
//background.src = back_source;
$.ajax({
type: 'POST',
url: 'data/imagedata.php',
data: {'imgurl': back_source},
success: function(_data){
//console.log(_data);
var imagedata = 'data:image/jpeg;base64,' + _data;
background.src = imagedata;
background.onload = function(){
for (var w = 0; w < canvas.attr('width'); w += background.width) {
for (var h = 0; h < canvas.attr('height'); h += background.height){
ctx.drawImage(background, w, h);
}
}
if(elementArr.length > 0){
htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
} else {
postCanvas();
}
}
},
error: function(xhr, textstatus){
////console.log(textstatus);
}
});
} else {
if(elementArr.length > 0){
htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
} else {
postCanvas();
}
}
}
function htmlToCanvas(type, obj){
if(type == 'img'){
var canvas_img = new Image();
canvas_img.crossOrigin = "*"; // This enables CORS
canvas_img.src = obj.attr('src');
//console.log(canvas_img.src);
var matrix = getObjMatrix(obj);
matrix = matrix.substring(7,matrix.length-1).split(', ');
canvas_img.onload = function(){
//console.log('onload');
ctx.save();
ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
ctx.drawImage(canvas_img, 0, 0);
ctx.restore();
putAnotherElementToCanvas();
}
/* $.ajax({
type: 'POST',
url: 'data/imagedata.php',
data: {'imgurl': obj.attr('src')},
success: function(_data){
var imagedata = 'data:image/png;base64,' + _data;
canvas_img.src = imagedata;
canvas_img.onload = function(){
ctx.save();
ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
ctx.drawImage(canvas_img, 0, 0);
ctx.restore();
putAnotherElementToCanvas();
}
},
error: function(xhr, textstatus){
////console.log(textstatus);
}
});*/
} else if(type == 'txt'){
ctx.save();
var matrix = getObjMatrix(obj);
matrix = matrix.substring(7,matrix.length-1).split(', ');
ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
ctx.fillStyle = obj.css('background-color');
ctx.fillRect(0, -7, obj.width(), obj.height());
ctx.fillStyle = obj.css('color');
ctx.font = (obj.css('font-size') + ' ' + obj.css('font-family')).toString();
ctx.textAlign = obj.css('text-align');
var xpos;
if(obj.css('text-align') == 'left'){
xpos = matrix[4];
} else if(obj.css('text-align') == 'center'){
xpos = Number(matrix[4]) + (obj.width()*matrix[0])/2;
} else if(obj.css('text-align') == 'right'){
xpos = Number(matrix[4]) + (obj.width()*matrix[0]);
}
ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], xpos, matrix[5]);
var lh = obj.css('font-size').replace('px', '')*1.2;
wrapText(ctx, obj.text(), 0, lh/2, obj.width()+25, lh);
ctx.restore();
putAnotherElementToCanvas();
}
}
function putAnotherElementToCanvas(){
canvasCounter++;
console.log(canvasCounter+ ' - ' +elementArr.length)
if(canvasCounter < elementArr.length){
htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
} else {
postCanvas();
}
}
function postCanvas()
{
var tempCanvas = document.createElement('canvas');
tempCanvas.width = cnvs.width;
tempCanvas.height = cnvs.height;
tempCanvas.getContext('2d').drawImage(cnvs, 0, 0);
// cnvs.width = 170;
// cnvs.height = 102;
cnvs.getContext('2d').drawImage(tempCanvas, 0, 0, tempCanvas.width, tempCanvas.height, 0, 0, cnvs.width, cnvs.height);
$.isFunction(callback.complete) && callback.complete.call(_this);
canvas.remove();
}
function wrapText(context, text, x, y, maxWidth, lineHeight) {
var words = text.split(' ');
var line = '';
for(var n = 0; n < words.length; n++) {
var testLine = line + words[n] + ' ';
var metrics = context.measureText(testLine);
var testWidth = metrics.width;
if(testWidth > maxWidth) {
context.fillText(line, x, y);
line = words[n] + ' ';
y += lineHeight;
}
else {
line = testLine;
}
}
context.fillText(line, x, y);
}
function getObjMatrix(obj) {
var matrix = obj.css("-webkit-transform") ||
obj.css("-moz-transform") ||
obj.css("-ms-transform") ||
obj.css("-o-transform") ||
obj.css("transform");
return matrix;
}
}ïŒïŒjQueryïŒ;
NS
èæ¯ç»åãšsvgã°ã©ãã£ãã¯ã§æŽæ°ãããŸããã
// HtmlãCanvasã«ä¿åããç»åãããã¯ãšã³ãã«ä¿åããŸã
ïŒé¢æ°ïŒ$ïŒ{
var canvasCounter = 0;
var canvas, cnvs, ctx, elementArr, callback, _this;
$.fn.htmlToCanvas = function(options) {
var defaults = {
width: 1000,
height: 600,
complete: null
};
callback = $.extend(defaults, options);
_this = this;
return this.each(function() {
createImage('#' + $(this)[0].id);
});
}
$.fn.htmlToCanvas.toBinrary = function() {
return cnvs.toDataURL("image/jpeg", 1);
}
$.fn.htmlToCanvas.removeCanvas = function() {
canvas.remove();
}
function createImage(divobj) {
if (canvas) canvas.remove();
canvas = $('<canvas id="canvas" width="' + callback.width + '" height="' + callback.height + '" style="display: block;"></canvas>');
$('body').append(canvas);
cnvs = document.getElementById('canvas')
ctx = cnvs.getContext("2d");
ctx.fillStyle = $(divobj).css('background-color');
ctx.fillRect(0, 0, callback.width, callback.height);
canvasCounter = 0;
elementArr = [];
$(divobj + " img").each(function(index) {
elementArr.push({
type: 'img',
zindex: $(this).css('z-index'),
imgobj: $(this)
});
});
$(divobj + " div.text-field").each(function(index) {
elementArr.push({
type: 'txt',
zindex: $(this).css('z-index'),
imgobj: $(this)
});
});
/*======================== for svg rendar pm7014.10.15 ========================*/
$(divobj + " div.hotsPot svg").each(function(index) {
elementArr.push({
type: 'svg',
zindex: $(this).parent().css('z-index'),
imgobj: $(this)
});
});
/*======================== for svg rendar End pm7014.10.15 ========================*/
elementArr.sort(function(a, b) {
var dif = Number(a.zindex - b.zindex);
return (dif);
});
//--------- background images ----------
if ($(divobj).css('background-image') != 'none') {
var background = new Image();
var back_source = $(divobj).css('background-image');
back_source = back_source.substring(4, back_source.length - 1);
back_source = back_source.replace('"', '');
back_source = back_source.replace('"', '');
background.crossOrigin = "*"; // This enables CORS
background.src = back_source;
background.onload = function() {
for (var w = 0; w < canvas.attr('width'); w += background.width) {
for (var h = 0; h < canvas.attr('height'); h += background.height) {
ctx.drawImage(background, w, h);
}
}
if (elementArr.length > 0) {
htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
} else {
postCanvas();
}
}
} else {
if (elementArr.length > 0) {
htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
} else {
postCanvas();
}
}
}
function htmlToCanvas(type, obj) {
if (type == 'img') {
var canvas_img = new Image();
canvas_img.crossOrigin = "*"; // This enables CORS
canvas_img.src = obj.attr('src');
var matrix = getObjMatrix(obj);
matrix = matrix.substring(7, matrix.length - 1).split(', ');
canvas_img.onload = function() {
ctx.save();
ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
ctx.drawImage(canvas_img, 0, 0);
ctx.restore();
putAnotherElementToCanvas();
}
} else if (type == 'txt') {
ctx.save();
var matrix = getObjMatrix(obj);
matrix = matrix.substring(7, matrix.length - 1).split(', ');
ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
ctx.fillStyle = obj.css('background-color');
ctx.fillRect(0, -7, obj.width(), obj.height());
ctx.fillStyle = obj.css('color');
ctx.font = (obj.css('font-size') + ' ' + obj.css('font-family')).toString();
ctx.textAlign = obj.css('text-align');
var xpos;
if (obj.css('text-align') == 'left') {
xpos = matrix[4];
} else if (obj.css('text-align') == 'center') {
xpos = Number(matrix[4]) + (obj.width() * matrix[0]) / 2;
} else if (obj.css('text-align') == 'right') {
xpos = Number(matrix[4]) + (obj.width() * matrix[0]);
}
ctx.setTransform(matrix[0], matrix[1], matrix[2], matrix[3], xpos, matrix[5]);
var lh = obj.css('font-size').replace('px', '') * 1.2;
wrapText(ctx, obj.text(), 0, lh / 2, obj.width() + 25, lh);
ctx.restore();
putAnotherElementToCanvas();
/*======================== for svg rendar pm7014.10.15 ========================*/
} else if (type == 'svg') {
svgObj = setAttributes(obj);
var data = "data:image/svg+xml;base64," + window.btoa($(obj).parent().html());
var svg_img = new Image();
svg_img.src = data;
var svgMatrix = getObjMatrix(obj.parent());
svgMatrix = svgMatrix.substring(7, svgMatrix.length - 1).split(', ');
svg_img.onload = function() {
ctx.save();
ctx.transform(svgMatrix[0], svgMatrix[1], svgMatrix[2], svgMatrix[3], svgMatrix[4], svgMatrix[5]);
ctx.drawImage(svg_img, 0, 0);
ctx.restore();
putAnotherElementToCanvas();
};
}
/* ======================== for svg rendar pm7014.10.15 ======================== */
}
function setAttributes(el) {
el.attr("version", "1.1");
el.attr("xmlns", "http://www.w3.org/2000/svg");
el.attr("xmlns:xlink", "http://www.w3.org/1999/xlink");
return el;
}
function putAnotherElementToCanvas() {
canvasCounter++;
//console.log(canvasCounter+ ' - ' +elementArr.length)
if (canvasCounter < elementArr.length) {
htmlToCanvas(elementArr[canvasCounter].type, elementArr[canvasCounter].imgobj);
} else {
postCanvas();
}
}
function postCanvas() {
var tempCanvas = document.createElement('canvas');
tempCanvas.width = cnvs.width;
tempCanvas.height = cnvs.height;
tempCanvas.getContext('2d').drawImage(cnvs, 0, 0);
// cnvs.width = 170;
// cnvs.height = 102;
cnvs.getContext('2d').drawImage(tempCanvas, 0, 0, tempCanvas.width, tempCanvas.height, 0, 0, cnvs.width, cnvs.height);
$.isFunction(callback.complete) && callback.complete.call(_this);
canvas.remove();
}
function wrapText(context, text, x, y, maxWidth, lineHeight) {
var words = text.split(' ');
var line = '';
for (var n = 0; n < words.length; n++) {
var testLine = line + words[n] + ' ';
var metrics = context.measureText(testLine);
var testWidth = metrics.width;
if (testWidth > maxWidth) {
context.fillText(line, x, y);
line = words[n] + ' ';
y += lineHeight;
} else {
line = testLine;
}
}
context.fillText(line, x, y);
}
function getObjMatrix(obj) {
var matrix = obj.css("-webkit-transform") ||
obj.css("-moz-transform") ||
obj.css("-ms-transform") ||
obj.css("-o-transform") ||
obj.css("transform");
return matrix;
}
}ïŒïŒjQueryïŒ;
cssã®å転ãšå€æãå®å
šã«æ©èœããªã...ã³ãŒãã«ãããã®ãã®ãå«ãŸããŠããŸã
å€æïŒrotateïŒ-13degïŒ;
z-indexïŒ40;
ã æŽæ°ãããã°ãé¡ãããŸãã
ããã«ã¯ãããªãã¯ã¹ã䜿çšããŸããã ãããè©ŠããŠãã ããã
1æ57åPMã«æšã2015幎10æ15æ¥ã«ã¯ããšãŒãšãŒ[email protected]ã¯æžããŸããïŒ
cssã®å転ãšå€æã¯å®å šã«ã¯æ©èœããŸãã...ç§ã¯ãããã®ãã®ãæã£ãŠããŸã
ç§ã®ã³ãŒãã§
å€æïŒrotateïŒ-13degïŒ;
z-indexïŒ40;
ã æŽæ°ãããã°ãé¡ãããŸããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -148316296
ã
_泚ïŒãã¥ã«ã¬ãŒããžã£ãŒã«åããŠåºçºããŸã
https://en.wikipedia.org/wiki/Durga_Puja20æ¥ãã23æ¥ãŸã§ã®äŒæ
10æã_
æ¬å
·
_Arindam Mojumder_
ã
HTML5ïŒjQueryããŒã ãªãŒããŒ
_Indus Net Technologies_ http://www.indusnet.co.in
ISO 9001ïŒ2008ããã³ISO 27001ïŒ2005èªå®äŒæ¥
GtalkïŒ [email protected]
æŽåŸïŒ+ 919830307843ã+ 918420200614
é»è©±çªå·ïŒ+ 91-33-32902857 / 23576070
ããªãŒãã€ã€ã«ïŒç±³åœããã³ã«ããïŒïŒ+ 1-888-652-2121
è±åœïŒ+ 44-020-81444070
ãã®ã¡ãã»ãŒãžã«ã¯ãç¹æš©ãŸãã¯æ©å¯æ
å ±ãå«ãŸããŠããå¯èœæ§ããããŸã
INDUS NETTECHNOLOGIESã®ææç©ã§ã
http://www.indusnet.co.in/ã ããã¯ãããçžæã§ãã人ã ãã察象ãšããŠããŸã
察åŠãããŸãã ããªããæå³ãããåä¿¡è
ã§ãªãå Žåãããªãã¯èš±å¯ãããŠããŸãã
ãã®ã¡ãã»ãŒãžãèªãã ããå°å·ããããã³ããŒãä¿æããããé
åžããããé
åžãããã䜿çšãããããã«ã¯
ãŸãã¯ãã®äžéšã ãã®ã¡ãã»ãŒãžã誀ã£ãŠåãåã£ãå Žåã¯ãéç¥ããŠãã ãã
éä¿¡è
ã¯ããã«éä¿¡ãããã®ã¡ãã»ãŒãžã®ãã¹ãŠã®ã³ããŒãåé€ããŸãã ã€ã³ãã¹ããã
ãã¯ãããžãŒhttp://www.indusnet.co.in/ã¯ã
ãŠã€ã«ã¹ã«ææããã¡ãŒã«ã
@arindammã©ãïŒ æŽæ°ããããã¡ã€ã«ãéã£ãŠããã ããŸãããã
@arindamm ïŒæ£ç¢ºã«è¿œå ããå Žæããããäžèšã®ã³ãŒãã«ã€ããŠè©±ããŠããå Žåã
ãã§ã«è¿œå ãããŠããã®ã§ã以åã®ã¡ãŒã«ã§æ·»ä»ãããjsãã¡ã€ã«ã確èªããŠãã ããã
15:52ã®æšã2015幎10æ15æ¥ã«ã¯ããšãŒãšãŒ[email protected]ã¯æžããŸããïŒ
@arindamm https://github.com/arindamm ïŒããªãã話ããŠãããªã
æ£ç¢ºã«è¿œå ããå Žæãããäžèšã®ã³ãŒããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -148344194
ã
_泚ïŒãã¥ã«ã¬ãŒããžã£ãŒã«åããŠåºçºããŸã
https://en.wikipedia.org/wiki/Durga_Puja20æ¥ãã23æ¥ãŸã§ã®äŒæ
10æã_
æ¬å
·
_Arindam Mojumder_
ã
HTML5ïŒjQueryããŒã ãªãŒããŒ
_Indus Net Technologies_ http://www.indusnet.co.in
ISO 9001ïŒ2008ããã³ISO 27001ïŒ2005èªå®äŒæ¥
GtalkïŒ [email protected]
æŽåŸïŒ+ 919830307843ã+ 918420200614
é»è©±çªå·ïŒ+ 91-33-32902857 / 23576070
ããªãŒãã€ã€ã«ïŒç±³åœããã³ã«ããïŒïŒ+ 1-888-652-2121
è±åœïŒ+ 44-020-81444070
ãã®ã¡ãã»ãŒãžã«ã¯ãç¹æš©ãŸãã¯æ©å¯æ
å ±ãå«ãŸããŠããå¯èœæ§ããããŸã
INDUS NETTECHNOLOGIESã®ææç©ã§ã
http://www.indusnet.co.in/ã ããã¯ãããçžæã§ãã人ã ãã察象ãšããŠããŸã
察åŠãããŸãã ããªããæå³ãããåä¿¡è
ã§ãªãå Žåãããªãã¯èš±å¯ãããŠããŸãã
ãã®ã¡ãã»ãŒãžãèªãã ããå°å·ããããã³ããŒãä¿æããããé
åžããããé
åžãããã䜿çšãããããã«ã¯
ãŸãã¯ãã®äžéšã ãã®ã¡ãã»ãŒãžã誀ã£ãŠåãåã£ãå Žåã¯ãéç¥ããŠãã ãã
éä¿¡è
ã¯ããã«éä¿¡ãããã®ã¡ãã»ãŒãžã®ãã¹ãŠã®ã³ããŒãåé€ããŸãã ã€ã³ãã¹ããã
ãã¯ãããžãŒhttp://www.indusnet.co.in/ã¯ã
ãŠã€ã«ã¹ã«ææããã¡ãŒã«ã
@arindamm @niklasvhãã®åé¡ã«é¢ããææ°æ å ±ã¯ãããŸããïŒ äžéšã®ããã¹ããåçŽæ¹åã«æããããšããŠããŸãããæ£ãã衚瀺ãããŸããã IE 11ã§ã¯æ£åžžã«åäœããŸãããIE9ã§ã¯åäœããŸããã
ãããã
15:45ææã2015幎10æ19æ¥ã«ã¯ãã©ã³ã¬[email protected]ã¯æžããŸããïŒ
@arindamm https://github.com/arindamm @niklasvh
https://github.com/niklasvhãã®åé¡ã«é¢ããææ°æ å ±ã¯ãããŸããïŒ
äžéšã®ããã¹ããåçŽæ¹åã«æããããšããŠããŸãããæ£ãã衚瀺ãããŸããã
IE 11ã§ã¯æ£åžžã«åäœããŸãããIE9ã§ã¯åäœããŸãããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -149174708
ã
_泚ïŒãã¥ã«ã¬ãŒããžã£ãŒã«åããŠåºçºããŸã
https://en.wikipedia.org/wiki/Durga_Puja20æ¥ãã23æ¥ãŸã§ã®äŒæ
10æã_
æ¬å
·
_Arindam Mojumder_
ã
HTML5ïŒjQueryããŒã ãªãŒããŒ
_Indus Net Technologies_ http://www.indusnet.co.in
ISO 9001ïŒ2008ããã³ISO 27001ïŒ2005èªå®äŒæ¥
GtalkïŒ [email protected]
æŽåŸïŒ+ 919830307843ã+ 918420200614
é»è©±çªå·ïŒ+ 91-33-32902857 / 23576070
ããªãŒãã€ã€ã«ïŒç±³åœããã³ã«ããïŒïŒ+ 1-888-652-2121
è±åœïŒ+ 44-020-81444070
ãã®ã¡ãã»ãŒãžã«ã¯ãç¹æš©ãŸãã¯æ©å¯æ
å ±ãå«ãŸããŠããå¯èœæ§ããããŸã
INDUS NETTECHNOLOGIESã®ææç©ã§ã
http://www.indusnet.co.in/ã ããã¯ãããçžæã§ãã人ã ãã察象ãšããŠããŸã
察åŠãããŸãã ããªããæå³ãããåä¿¡è
ã§ãªãå Žåãããªãã¯èš±å¯ãããŠããŸãã
ãã®ã¡ãã»ãŒãžãèªãã ããå°å·ããããã³ããŒãä¿æããããé
åžããããé
åžãããã䜿çšãããããã«ã¯
ãŸãã¯ãã®äžéšã ãã®ã¡ãã»ãŒãžã誀ã£ãŠåãåã£ãå Žåã¯ãéç¥ããŠãã ãã
éä¿¡è
ã¯ããã«éä¿¡ãããã®ã¡ãã»ãŒãžã®ãã¹ãŠã®ã³ããŒãåé€ããŸãã ã€ã³ãã¹ããã
ãã¯ãããžãŒhttp://www.indusnet.co.in/ã¯ã
ãŠã€ã«ã¹ã«ææããã¡ãŒã«ã
@arindamm @niklasvh ïŒhello sirã overflowïŒhidden and margin-leftïŒ-42px; ç§ã®ç»åã«é©çšãããŠããŸããã 解決çãæããŠãã ããããŸãã¯ãã¡ã€ã«ãæŽæ°ããŠãã ããã ãé¡ãããŸãã
ç§ã¯ãã®éšåã§åããŸããã§ããã ä»æ¹ããªããšèšã£ãŠãã¿ãŸããã ããªãã¯ããªããäœãããšãã§ããŸã
ç¬èªã®é¢æ°ãäœæããcanvas.drawïŒïŒé¢æ°ã§ç»åãåãæããŸãã
11æ12åAMã«æšã2015幎10æ29æ¥ã«ã¯ããšãŒãšãŒ[email protected]ã¯æžããŸããïŒ
@arindamm https://github.com/arindamm @niklasvh
https://github.com/niklasvh ïŒããã«ã¡ã¯ããªãŒããŒãããŒïŒhiddenã¯ãããŸãã
ç§ã®ç»åã«é©çšãããŸãã 解決çãæããŠãã ãããŸãã¯ãé¡ãããŸã
ãã¡ã€ã«ãæŽæ°ããŸãã ãé¡ãããŸããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/niklasvh/html2canvas/issues/220#issuecomment -152082507
ã
æ¬å
·
_Arindam Mojumder_
ã
HTML5ïŒjQueryããŒã ãªãŒããŒ
_Indus Net Technologies_ http://www.indusnet.co.in
ISO 9001ïŒ2008ããã³ISO 27001ïŒ2005èªå®äŒæ¥
GtalkïŒ [email protected]
æŽåŸïŒ+ 919830307843ã+ 918420200614
é»è©±çªå·ïŒ+ 91-33-32902857 / 23576070
ããªãŒãã€ã€ã«ïŒç±³åœããã³ã«ããïŒïŒ+ 1-888-652-2121
è±åœïŒ+ 44-020-81444070
ãã®ã¡ãã»ãŒãžã«ã¯ãç¹æš©ãŸãã¯æ©å¯æ
å ±ãå«ãŸããŠããå¯èœæ§ããããŸã
INDUS NETTECHNOLOGIESã®ææç©ã§ã
http://www.indusnet.co.in/ã ããã¯ãããçžæã§ãã人ã ãã察象ãšããŠããŸã
察åŠãããŸãã ããªããæå³ãããåä¿¡è
ã§ãªãå Žåãããªãã¯èš±å¯ãããŠããŸãã
ãã®ã¡ãã»ãŒãžãèªãã ããå°å·ããããã³ããŒãä¿æããããé
åžããããé
åžãããã䜿çšãããããã«ã¯
ãŸãã¯ãã®äžéšã ãã®ã¡ãã»ãŒãžã誀ã£ãŠåãåã£ãå Žåã¯ãéç¥ããŠãã ãã
éä¿¡è
ã¯ããã«éä¿¡ãããã®ã¡ãã»ãŒãžã®ãã¹ãŠã®ã³ããŒãåé€ããŸãã ã€ã³ãã¹ããã
ãã¯ãããžãŒhttp://www.indusnet.co.in/ã¯ã
ãŠã€ã«ã¹ã«ææããã¡ãŒã«ã
ããã«èšèŒãããŠããåé¿çãå®è¡ã§ããŸãã
http://www.jjoe64.com/2015/10/html2canvas-and-css-transform-rotate.html
@ jjoe64 https://github.com/niklasvh/html2canvas/issues/209#issuecomment -152904727
ãããæšæž¬ããããšã¯ãŸã èŠãããŠããŸããã
åçŽæ¹åã®äœçœ®åããã«æ©èœããããã«å¿ èŠãªtranslateYã®çš®é¡ïŒãããåçŽãªå®è£ ã§ãããšæåŸ ããŠããŸããããæããã«ããã§ã¯ãããŸããã§ããïŒã
ð
img = document.createElement("img")
img.src = canvas.toDataURL()
newCanvas = document.createElement('canvas')
ctx = newCanvas.getContext("2d")
newCanvas.height = 350
newCanvas.width = 200
ctx.translate(185, 35)
ctx.rotate(90 * Math.PI/180)
ctx.drawImage(img,0,0); #draw it
canvasURL = newCanvas.toDataURL()
html2canvasãããcanvasãååŸããŸãã 次ã«ãäžèšã®javascriptã䜿çšããŠã90床å転ããnewCanvasãäœæããŸãã
é«ããå¹ ã䜿çšãããŠãŒã¹ã±ãŒã¹ã«å¿ããŠããããã£ãå€æããŸã
ããã¯ã¹ã·ã£ããŠcss3ãæ©èœããŠããŸãããïŒããã§ãããããšãããããŸã
å€æã¯1.0.0ã§éšåçã«ãµããŒããããŠããŸã
@niklasvhã©ã®å€æããµããŒããããŠããããµããŒããããŠããªããã«ã€ããŠã®æ å ±ã¯ãããŸããïŒ
å転ãæ©èœããŠããªãããã§ã
æãåèã«ãªãã³ã¡ã³ã
@liteelipsç§ããããã¹ãã®å転ãå¿ èŠã§ã:(