$img = imagecreatefrompng("img/".$image);
$w = imagesx($img);
$h = imagesy($img);
$pixelcount = 0;
echo "<div id='container' style='width: {$w}px; height: {$h}px;'>\r\n";
for($y=0;$y<$h;$y++) {
for($x=0;$x<$w;$x++) {
$rgb = imagecolorat($img, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$alpha = (imagecolorat($img,$x,$y) & 0x7F000000) >> 24;
if($alpha == 127)
$newcolor = "transparent";
else
$newcolor = sprintf('#%02X%02X%02X', $r, $g, $b);
if(isset($prevcolor) && strcmp($newcolor, $prevcolor) != 0)
{
echo "<div style='background: {$prevcolor}; height: 1px; width: {$pixelcount}px; float: left;'></div>\r\n";
$pixelcount = 0;
}
$prevcolor = $newcolor;
$pixelcount++;
}
echo "<div style='background: {$prevcolor}; height: 1px; width: {$pixelcount}px; float: left;'></div>\r\n";
unset($prevcolor);
$pixelcount = 0;
}
echo "</div>\r\n";
Вот ссылка на инструмент в его текущем виде.
http://schnell.dreamhosters.com/folio/pixelread.php?image=link.png
Поворот мышью вверх, клавиши I и + / = увеличивают. Колесо мышки вниз, O и -/ _ клавиша уменьшения.Не нужно сосредотачиваться на каком-либо конкретном элементе, весь документ регистрирует нажатие клавиши / колесико мыши.
Редактирование - Спасибо за исправление этой единственной проблемы, ребята!Теперь получил новый.Если вы подойдете к инструменту и попытаетесь взорвать его, увеличив масштаб, спрайт просто развалится.Если оставить его в покое и ничего не делать, все выглядит хорошо.Также странно то, что вы не можете исправить изображение, сбросив его размер, оно будет портиться, пока вы не обновите страницу.
Edit2 - обнаружен источник проблемы.
function resize(width, height)
{
$('div#container').css('height', factor * height);
$('div#container').css('width', factor * width);
$('div#container > div').css('height', factor).css('width', function(i, val) { return parseInt(val * factor) + 'px'; });
$('div#container').css('margin-top', ($(window).height() - $('div#container').height())/2 + "px");
}
Ширина почему-то не умножается на «фактор».Я пытаюсь сделать это таким образом, чтобы jQuery делал это для каждого дочернего элемента div, основывая новую ширину на старой, без необходимости делать огромный цикл for или что-то еще, но я ничего не придумываю,работает.
Edit3 - Наконец-то все заработало!Я просто сохранил исходную длину каждого div как атрибут 'id' в каждом, а затем получил доступ к нему, когда придет время изменить размер всего.Спасибо всем, кто смирился с этим и застрял со мной, чтобы довести это до конца.Клянусь, изменение размеров будет более плавным, чем раньше!: D