首页 > 解决方案 > 图像生成

问题描述

我需要为每个记录图像生成(结合一些图像)。我用帆布做。

       html2canvas($("#target"), {
    onrendered: function(canvas) {
        var imgsrc = canvas.toDataURL("image/png");
        $("#img-data").val(canvas.toDataURL("image/png"));
        var extra_canvas = document.createElement("canvas");
        extra_canvas.setAttribute("width",240);
        extra_canvas.setAttribute("height",400);
        var ctx = extra_canvas.getContext("2d");
        ctx.drawImage(canvas,0,0,canvas.width, 
        canvas.height,0,0,240,400);
        var dataURL = extra_canvas.toDataURL();

像这样的东西。所以在我的行动中我可以获得内容

$content = $this->renderPartial('renderings\test', ['model' => MyData::findOne($myData['data_id'])]);

但我会在一段时间后得到正确的记录,所以使用 DOMDocument 获取数据是不可能的,或者生成一些用于转换图像的 html 文件。

我需要找到一些方法来获取生成的图像 src ...

此代码生成的图像

  <?php for ( $i = 1; $i <= 6; $i++ ) { 
       if ( $i == 1 ) { ?> 
            <div class="panel">
        <?php } ?>
        <div class="dd1<?= $i; ?> <?php echo $previewPanelSize ?>">
            <?php

            if (($model->{'tem_p' . $i . '_type'} == '2') and ($model->{'tem_p' . $i . '_content'} > 1500027946)) { // condition for projects that need the refnumber to display image, remove in case this changes

                $im = Images::findOne(['ima_refnum' => $model->{'tem_p' . $i . '_content'}]);
                if ($im) {
                    print '<center id="' . $im->ima_refnum . '">' . Html::img('data:' . $im->ima_type . ';base64,' . $im->ima_image, []) . '</center>';
                }
            } else {
                print '<center>' . $model->{'tem_p' . $i . '_content'} . '</center>';
            }
            ?>
        </div>
        <?php if ($i == 3 ) { ?>
            </div>
            <div class="panel">
        <?php } ?>
        <?php if ($i == 6 ) { ?>
            </div>
        <?php } ?>
    <?php } ?>

有什么好主意吗?

标签: phpjqueryyii2renderimage-generation

解决方案


推荐阅读