как загрузить иконку в картинку с сохранением прозрачности по краям?
еще, в проводнике вид>плитка иконка большая а в хиасме Image показывает что она маленькая и при растягивании вместо графики появляются квадраты!
Этот топик читают: Гость
Ответов: 632
Рейтинг: 16
|
|||
карма: 0 |
|
Ответов: 184
Рейтинг: 4
|
|||
Geka писал(а): с сохранением прозрачности по краям?Не совсем понял, что значит по краям, но вроде имеется ввиду сохранение фона за Image (цвет формы вместо белого) ? Тогда так: code_1529.txt Geka писал(а): иконка большая а в хиасме Image показывает что она маленькаяТ.е. иконка имеет размер 32x32 и 64x64, но загружается только 32x32? |
|||
карма: 1 |
| ||
файлы: 1 | code_1529.txt [645B] [499] |
Ответов: 632
Рейтинг: 16
|
|||
иконка имеет размер 32x32 и 64x64, но загружается только 32x32?
да весит 160 кило, 128х128, установив в твою схему и поставив 128х128 image показывает квадраты... она вообще по моему выше 16х16 никак! |
|||
карма: 0 |
|
Ответов: 184
Рейтинг: 4
|
|||
Geka писал(а): установив в твою схемуСхема - это про прозрачность, поэтому на квадраты там внимания обращать не стоит Geka писал(а): она вообще по моему выше 16х16 никак!Очень даже как: 32x32 размер загружаемой иконки по умолчанию. Надо просто добавить возможность изменения этого "размера по умолчанию" [size=-2]------ Добавлено в 12:35 Вот чего у меня получилось: code_1530.txt В hiIcon.pas добавить: procedure _work_doLoadSz(var _Data:TData; Index:word);
и procedure THIIcon._work_doLoadSz;
var fn: string; begin if Icon = nil then Icon := NewIcon; Icon.Size := ToInteger(_Data); fn := ReadFileName(ReadString(_Data, _data_FileName,')); // ??? Icon.LoadFromFile(fn); end; В Icon.ini: doLoadSz=Загружает иконку указанного размера (или наиболее близкого к нему) из файла|1| |
|||
карма: 1 |
| ||
файлы: 1 | code_1530.txt [1KB] [447] |
Ответов: 632
Рейтинг: 16
|
|||
ого , залей в компоненты iconEx?
[size=-2]------ Добавлено в 12:59 и туда же апгрейдь
|
|||
карма: 0 |
|
Ответов: 184
Рейтинг: 4
|
|||
Geka писал(а): Add(BitBtn,12818999,84,98)А с этим что не так |
|||
карма: 1 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
HuKTO писал(а): procedure THIIcon._work_doLoadSz;
var fn: string; begin if Icon = nil then Icon := NewIcon; Icon.Size := ToInteger(_Data); fn := ReadFileName(ReadString(_Data, _data_FileName,')); // ??? Icon.LoadFromFile(fn); end; Чушь это все. Icon.LoadFromFile -- читает заголовок файла с Bitmap образом иконки и маски после чего применяется CreateIconIndirect. Размер твоей иконки, который ты указал ему до барабана -- иконка загружается с тем размером, с каким создан битовый образ. |
|||
карма: 22 |
|
Ответов: 184
Рейтинг: 4
|
|||
Кладов В. писал(а): Size - для квадратных пиктограмм, показывает их размер (высоту и ширину).
До загрузки пиктограммы из внешних источников (файл, ресурс) этому значению можно присвоить ненулевое значение для того, чтобы при загрузке пиктограммы, имеющей несколько вариантов изображения, загружалось изображение именно указанного размера (по умолчанию всегда в первую очередь загружается пиктограмма 32х32, во вторую очередь – максимально близкая ей по размеру); |
|||
карма: 1 |
|
Ответов: 632
Рейтинг: 16
|
|||
HuKTO, похоже, но! когда растягиваю кнопку на 128х128 и ставлю ico с таким же форматом, то он показывает 32х32 постоянно
[size=-2]------ Добавлено в 13:31 nesco, Чушь это все схему на манеж... цирк начинается |
|||
карма: 0 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
HuKTO, каждый файл иконки состоит из нескольких N-битовых образов изображения и маски различных размеров. Заголовок иконки состоит из фиксированных заколовков конкретных иконок с конкретными размерами (я не буду его сейчас описывать). Загрузчик читает заголовок и, если ты указал размер, то выбирается именно заголовок иконки с этим размером. Но никогда иконка 16х16 не станет 64х64 пока не применить Stretch на битовый образ. Возможно, мы не правильно поняли друг друга, скорее всего так оно и есть.
[size=-2]------ Добавлено в 13:37 Geka, после пары дынь от Galkova c экпериментами по модификации Icon, я к нему больше пальцем не прикоснусь до особого распоряжения. |
|||
карма: 22 |
|
Ответов: 184
Рейтинг: 4
|
|||
nesco, Скорее всего. Проблема у Geka заключалась, как я понял, в том, что всегда грузілась иконка размером 32x32 вместо нужной ему 128x128. Эту проблему я попытался решить, не вдаваясь в прочие ненужные (и может неизвестные) мне подробности.
|
|||
карма: 1 |
|
Ответов: 632
Рейтинг: 16
|
|||
[b]HuKTO[/b], к примеру я вставил иконку внутрь в
8x8 16x16 24x24 32x32 64x64 128x128 256x256 |
|||
карма: 0 |
|
Ответов: 184
Рейтинг: 4
|
|||
nesco писал(а): Geka, после пары дынь от GalkovaЧто-то мне расхотелось с иконками возиться [size=-2]------ Добавлено в 13:52 Geka, попробуй хранить в Bitmap'е (если "Вставил" значит сохранил в схеме). Там никаких проблем с размером нет. |
|||
карма: 1 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Geka, для таких целей этот компонент не пойдет вообще. Модуль KOL'a по считыванию для этой цели надо переделывать.
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
KOL основан на WinAPI, а WinAPI с древних времен предоставляет такой интерфейс, при котором из файла иконки можно получить только два формата: 16х16 и 32х32. Возможно в WinXP и имеются более продвинутые ф-ции для получения других размеров, а так же других форматов(таких как Icon XP), однако встречаться с таким не приходилось. Все приложения, которым это нужно получают данные прямым чтением из файла в соответствие со спецификацией.
|
|||
карма: 27 |
|