Я прочитал кое-что об этом, но я не могу понять, как вставить это в мой код.
Вот оно:
function go($image) {
// Open the image
$getimage=imagecreatefrompng($image);
//Get the width/height
$w = imagesx($getimage);
$h = imagesy($getimage);
//init Count variable, when it reach the width, skip a line
$count = 0;
// For each line
for($y=0;$y<$h;$y++) {
// For each column
for($x=0;$x<$w;$x++) {
$rgba = imagecolorat($getimage, $x, $y);
$r = ($rgba >> 16) & 0xFF;
$g = ($rgba >> 8) & 0xFF;
$b = $rgba & 0xFF;
$a = ($rgba & 0x7F000000) >> 24;
echo '<div class="pix" style="background-color: rgba('.$r.', '.$g.', '.$b.', '.$a.');"></div>';
$count++;
if($count==$w) {echo '<br>'; $count = 0; }
}
}
echo $pixel_gen;
}
Если вы хотите увидетькак это выглядит, нажмите здесь: http://narks.xtreemhost.com/
И дважды щелкните любой значок, появится всплывающее окно.(Примечание: при двойном щелчке на любом значке будет отображаться одно и то же изображение (я еще не исправил это)
Есть идеи, как сделать так, чтобы черный пиксель выглядел как настоящий пиксель с альфа-каналом)?
Спасибо за вашу помощь!
РЕДАКТИРОВАНИЕ (Новый код, я ставлю только первые строки, так как хочу сэкономить место)
function go($image) {
// Open the image
$getimage=imagecreatefrompng($image);
imagealphablending($getimage, false);
imagesavealpha($getimage, true);
//Get the width/height
$w = imagesx($getimage);
$h = imagesy($getimage);
[...]
Чтобы посмотреть, как это выглядиткак сейчас, посетите веб-сайт выше и дважды щелкните значок.
РЕДАКТИРОВАТЬ 2 Я только что попробовал (для теста) с:
$getimage=imagecreatefrompng('iconDB/lib/chat_fav_48.png');
imagealphablending($getimage, false);
imagesavealpha($getimage, true);
header("Content-type: image/png");
imagepng($getimage);
imagedestroy($getimage);
, а затемс
$getimage=imagecreatefrompng('iconDB/lib/chat_fav_48.png');
header("Content-type: image/png");
imagepng($getimage);
imagedestroy($getimage);
Первый в порядке, а второй делает пиксели черными.Так бывает, когда я получаю цвета RGB каждого пикселя и когда я его отображаю.Кто-нибудь видит там ошибку?