Мне нужно создать для каждой записи изображения (в сочетании с некоторыми изображениями).Я делаю это с помощью 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 } ?>
Любая хорошая идея?