Генерация изображения - PullRequest
0 голосов
/ 17 ноября 2018

Мне нужно создать для каждой записи изображения (в сочетании с некоторыми изображениями).Я делаю это с помощью canvas.

       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 } ?>

Любая хорошая идея?

...