как установить свойство фонового изображения div для динамически генерируемого изображения - PullRequest
1 голос
/ 03 мая 2010

У меня есть несколько div-ов, и у каждого есть свое фоновое изображение. Базовые изображения в сохраненном виде - это просто черный силуэт.

Я хотел бы использовать пакет PHP GD для произвольного изменения цвета этих изображений, и чтобы измененные случайно окрашенные изображения были фоновыми изображениями элементов div.

Один из способов сделать это - просто создать структуры изображений GD из исходных файлов, изменить их, сохранить результаты в виде временного файла, передать это имя файла клиенту, а затем использовать jquery для изменения свойств фонового изображения css для divs, чтобы быть новым файлом. Но это оставит много файлов, лежащих вокруг для сбора мусора.

Есть ли способ сделать это, не создавая кучу файлов?

1 Ответ

1 голос
/ 03 мая 2010

Если это просто "несколько случайно", то вы можете просто сгенерировать все варианты, которые хотите использовать. Затраты ЦП / памяти на необходимость создания образов на лету быстро превысят время, необходимое для предварительной сборки.

Если вы ДЕЙСТВИТЕЛЬНО не хотите, чтобы статические версии сидели без дела, просто используйте вызовы image???() и не указывайте имя файла для вывода. Это отправит готовое изображение непосредственно клиенту, поэтому вы можете просто указать правило css:

div.randombg {
    background-image: url(/randomimage.php);
}

И сценарий сводится к:

<?php

...  GD stuff to build image here ...
header("Content-type: image/jpeg");
imagejpg($gdhandle);
exit();

Если вы хотите, чтобы фон оставался относительно постоянным для каждого пользователя, вы можете установить флаг в файле cookie / сеансе, чтобы указать сценарию создания изображения отправлять «неизмененные» заголовки, чтобы клиент мог повторно использовать ранее встроенный образ и не заставляйте его меняться при каждом попадании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...