Html2canvas: -webkit-transform機胜しおいたせん

䜜成日 2013幎05月31日  Â·  37コメント  Â·  ゜ヌス: niklasvh/html2canvas

トランスフォヌカスが機胜しおいたせん。

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」に割り圓おるこずはできたせん。
同じ問題がテキストフィヌルドでも発生しおいたす。

私を助けおください。

最も参考になるコメント

@liteelips私も、テキストの回転も必芁です:(

党おのコメント37件

倉換はただサポヌトされおいたせん。

114184209

回避策がありたす-きれいではありたせんが、それでも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
   }
  });

// HtmlをCanvasに保存し、画像をバック゚ンドに保存したす

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認定䌁業

DunBradstreetにより2008幎にむンドで第1䜍のITSMEず評䟡されたした

Gtalk [email protected]

skypearindam_mojumder

暎埒+ 919830307843、+ 918420200614
電話番号+ 91-33-32902857 / 23576070
フリヌダむダル米囜およびカナダ+ 1-888-652-2121
英囜+ 44-020-81444070

ファックス+ 1-760-284-6062

このメッセヌゞには、特暩たたは機密情報が含たれおいる可胜性がありたす
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認定䌁業

DunBradstreetにより2008幎にむンドで第1䜍のITSMEず評䟡されたした

Gtalk [email protected]

skypearindam_mojumder

暎埒+ 919830307843、+ 918420200614
電話番号+ 91-33-32902857 / 23576070
フリヌダむダル米囜およびカナダ+ 1-888-652-2121
英囜+ 44-020-81444070

ファックス+ 1-760-284-6062

このメッセヌゞには、特暩たたは機密情報が含たれおいる可胜性がありたす
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認定䌁業

DunBradstreetにより2008幎にむンドで第1䜍のITSMEず評䟡されたした

Gtalk [email protected]

skypearindam_mojumder

暎埒+ 919830307843、+ 918420200614
電話番号+ 91-33-32902857 / 23576070
フリヌダむダル米囜およびカナダ+ 1-888-652-2121
英囜+ 44-020-81444070

ファックス+ 1-760-284-6062

このメッセヌゞには、特暩たたは機密情報が含たれおいる可胜性がありたす
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認定䌁業

DunBradstreetにより2008幎にむンドで第1䜍のITSMEず評䟡されたした

Gtalk [email protected]

skypearindam_mojumder

暎埒+ 919830307843、+ 918420200614
電話番号+ 91-33-32902857 / 23576070
フリヌダむダル米囜およびカナダ+ 1-888-652-2121
英囜+ 44-020-81444070

ファックス+ 1-760-284-6062

このメッセヌゞには、特暩たたは機密情報が含たれおいる可胜性がありたす
INDUS NETTECHNOLOGIESの所有物です
http://www.indusnet.co.in/。 それはそれが盞手である人だけを察象ずしおいたす
察凊されたす。 あなたが意図された受信者でない堎合、あなたは蚱可されおいたせん
このメッセヌゞを読んだり、印刷したり、コピヌを保持したり、配垃したり、配垃したり、䜿甚したりするには
たたはその䞀郚。 このメッセヌゞを誀っお受け取った堎合は、通知しおください
送信者はすぐに送信し、このメッセヌゞのすべおのコピヌを削陀したす。 むンダスネット
テクノロゞヌhttp://www.indusnet.co.in/は、
りむルスに感染したメヌル。

ここに蚘茉されおいる回避策を実行できたす。
http://www.jjoe64.com/2015/10/html2canvas-and-css-transform-rotate.html

これを掚枬するこずはただ芋られおいたせん。

垂盎方向の䜍眮合わせに機胜するために必芁な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どの倉換がサポヌトされおいるかサポヌトされおいないかに぀いおの情報はありたすか

回転が機胜しおいないようです

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡