А если Вы про фильтры CSS, которые только IE понимает - то их нафиг.
Форум → Разработка → Клиентская сторона → Верстка и оформление → CSS фильтром "задизейблить" иконки
CSS фильтром "задизейблить" иконки
Страницы: ← Предыдущая страница →
-
25 августа 2009 г. 19:01, спустя 13 минут 10 секунд
aivee, хамить не надо :)md5, подскажите, пжлст, кодовую фразу … я терминологии не знаю - не знаю. что искать в документации. (если про GD)
А если Вы про фильтры CSS, которые только IE понимает - то их нафиг. -
25 августа 2009 г. 19:05, спустя 4 минуты 20 секунд
ну насколько я понял из скринов с ворда — тут надо всего лишь менять opacity у картинкивсе умрут, а я изумруд -
-
26 августа 2009 г. 11:46, спустя 16 часов 38 минут
phpdude, Вытащил из класса нужный метод.<?php
// http://flourishlib.com/browser/fImage.php
header("Content-type: image/png");
$file = 'test.png';
$mode = isset($_GET['m']) ? $_GET['m'] : '0';
//Выводим просто иконку
if(0 == $mode){
readfile($file);
exit();
}
$gd_res = imagecreatefrompng($file);
list($width,$height) = getimagesize($file);
$new_gd_res = imagecreate($width,$height);
// Create a palette of grays
$grays = array();
for ($i=0; $i < 256; $i++) {
$grays[$i] = imagecolorallocate($new_gd_res, $i, $i, $i);
}
// Loop through every pixel and convert the rgb values to grays
for ($x=0; $x < $width; $x++) {
for ($y=0; $y < $height; $y++) {
$color = imagecolorat($gd_res, $x, $y);
$red = ($color >> 16) & 0xFF;
$green = ($color >> 8) & 0xFF;
$blue = $color & 0xFF;
// Get the appropriate gray (http://en.wikipedia.org/wiki/YIQ)
$yiq = round(($red * 0.299) + ($green * 0.587) + ($blue * 0.114));
imagesetpixel($new_gd_res, $x, $y, $grays[$yiq]);
}
}
if(1 == $mode) { // выводим необработанную
imagepng($gd_res);
}else{ // выводим после обработки
imagepng($new_gd_res);
}
?>
И запускаем сиё:<style>
img {
border:solid 1px #000;
background-color: #888;
}
</style>
<img src="/icon.php?m=0">
<img src="/icon.php?m=1">
<img src="/icon.php?m=2">
Три варианта выдачи картинки:
оригинал картинки
через GD без обработки
через GD с обработкой
Фон и рамка - дабы видно было прозрачность и границы рисунка.
Фигня полная …
md5, недостаточно здесь прозрачности. Здесь нужно цвета убрать, и, кажись, не просто привести в оттенки серого … присмотритесь к неактивным иконкам в приложениях.
Спустя 22 сек.В приложении результат работы скрипта -
26 августа 2009 г. 11:48, спустя 1 минуту 18 секунд
AndryG, там неопределен альфа цвет ..Сапожник без сапог -
-
26 августа 2009 г. 13:26, спустя 17 минут 44 секунды
да я знаю что ты меня ненавидищь :(
phpdude, альфа не цвет, альфа - каналСапожник без сапог -
26 августа 2009 г. 16:00, спустя 2 часа 34 минуты 40 секунд
AndryG, поставь XnView, там есть мультипреобразования (выбираешь папку с картинками и назначаешь нужные преобразования) -
-
26 августа 2009 г. 17:01, спустя 58 минут 36 секунд
<?php
// http://flourishlib.com/browser/fImage.php
header("Content-type: image/png");
$file = 'test.png';
$mode = isset($_GET['m']) ? $_GET['m'] : '0';
//Выводим просто иконку
if(0 == $mode){
readfile($file);
exit();
}
$gd_res = imagecreatefrompng($file);
list($width,$height) = getimagesize($file);
$new_gd_res = imagecreate($width,$height);
// Create a palette of grays
$grays = array();
for ($i=0; $i < 256; $i++) {
$grays[$i] = imagecolorallocate($new_gd_res, $i, $i, $i);
}
// Loop through every pixel and convert the rgb values to grays
for ($x=0; $x < $width; $x++) {
for ($y=0; $y < $height; $y++) {
$color = imagecolorat($gd_res, $x, $y);
$red = ($color >> 16) & 0xFF;
$green = ($color >> 8) & 0xFF;
$blue = $color & 0xFF;
// Get the appropriate gray (http://en.wikipedia.org/wiki/YIQ)
$yiq = round(($red * 0.299) + ($green * 0.587) + ($blue * 0.114));
imagesetpixel($new_gd_res, $x, $y, $grays[$yiq]);
}
}
//Определяем прозрачный цвет
$col_transparent = imagecolortransparent ($gd_res);
//Пересчитываем его точно так же как и остальные
$col_transparent_new = round(
((($col_transparent >> 16) & 0xFF) * 0.299) +
((($col_transparent >> 8) & 0xFF) * 0.587) +
(($col_transparent & 0xFF) * 0.114));
imagecolortransparent($new_gd_res,$grays[$col_transparent_new]);
if(1 == $mode) { // выводим не обработаную
imagepng($gd_res);
}else{ // выводим после обработки
imagepng($new_gd_res);
}
?>
Спустя 38 сек.Вроде как прозрачность и появилась .. но не вся (на третьем рисунке) -
26 августа 2009 г. 19:33, спустя 2 часа 32 минуты 9 секунд
AndryG, доведи до ума этот АЛГОРИТМ, используя IMAGICK. там то уж точно все норм будет ;)Сапожник без сапог -
27 августа 2009 г. 10:27, спустя 14 часов 54 минуты 8 секунд
Смотрю я на сей код и думаю …
а нафига сперва забивать забивать серую палитру а потом каждый пиксель перебивать
Может сразу палитру поправить да и все дела?
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!