Вверх ↑
Этот топик читают: Гость
Ответов: 632
Рейтинг: 16
#1: 2007-06-08 01:29:46 ЛС | профиль | цитата
как загрузить иконку в картинку с сохранением прозрачности по краям?
еще, в проводнике вид>плитка иконка большая а в хиасме Image показывает что она маленькая и при растягивании вместо графики появляются квадраты!
карма: 0

0
Ответов: 184
Рейтинг: 4
#2: 2007-06-08 02:13:14 ЛС | профиль | цитата
Geka писал(а):
с сохранением прозрачности по краям?

Не совсем понял, что значит по краям, но вроде имеется ввиду сохранение фона за Image (цвет формы вместо белого) ? Тогда так: code_1529.txt
Geka писал(а):
иконка большая а в хиасме Image показывает что она маленькая

Т.е. иконка имеет размер 32x32 и 64x64, но загружается только 32x32?
карма: 1
Статус строка какая-то, сейчас посмотрім: %time%
0
файлы: 1code_1529.txt [645B] [499]
Ответов: 632
Рейтинг: 16
#3: 2007-06-08 12:18:35 ЛС | профиль | цитата
иконка имеет размер 32x32 и 64x64, но загружается только 32x32?
да весит 160 кило, 128х128, установив в твою схему и поставив 128х128 image показывает квадраты... она вообще по моему выше 16х16 никак!
карма: 0

0
Ответов: 184
Рейтинг: 4
#4: 2007-06-08 12:35:40 ЛС | профиль | цитата
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
Статус строка какая-то, сейчас посмотрім: %time%
0
файлы: 1code_1530.txt [1KB] [447]
Ответов: 632
Рейтинг: 16
#5: 2007-06-08 12:59:07 ЛС | профиль | цитата
ого , залей в компоненты iconEx?

[size=-2]------ Добавлено в 12:59
и туда же апгрейдь
Add(BitBtn,12818999,84,98)
{
Left=80
Top=90
Width=64
Height=64
}
если нетрудно?
карма: 0

0
Ответов: 184
Рейтинг: 4
#6: 2007-06-08 13:11:00 ЛС | профиль | цитата
Geka писал(а):
Add(BitBtn,12818999,84,98)

А с этим что не так
карма: 1
Статус строка какая-то, сейчас посмотрім: %time%
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#7: 2007-06-08 13:15:38 ЛС | профиль | цитата
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

0
Ответов: 184
Рейтинг: 4
#8: 2007-06-08 13:21:40 ЛС | профиль | цитата
Кладов В. писал(а):
Size - для квадратных пиктограмм, показывает их размер (высоту и ширину).
До загрузки пиктограммы из внешних источников (файл, ресурс) этому значению можно присвоить ненулевое значение для того, чтобы при загрузке пиктограммы, имеющей несколько вариантов изображения, загружалось изображение именно указанного размера (по умолчанию всегда в первую очередь загружается пиктограмма 32х32, во вторую очередь – максимально близкая ей по размеру);

карма: 1
Статус строка какая-то, сейчас посмотрім: %time%
0
Ответов: 632
Рейтинг: 16
#9: 2007-06-08 13:31:48 ЛС | профиль | цитата
HuKTO, похоже, но! когда растягиваю кнопку на 128х128 и ставлю ico с таким же форматом, то он показывает 32х32 постоянно

[size=-2]------ Добавлено в 13:31
nesco,
Чушь это все
схему на манеж... цирк начинается
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#10: 2007-06-08 13:37:25 ЛС | профиль | цитата
HuKTO, каждый файл иконки состоит из нескольких N-битовых образов изображения и маски различных размеров. Заголовок иконки состоит из фиксированных заколовков конкретных иконок с конкретными размерами (я не буду его сейчас описывать). Загрузчик читает заголовок и, если ты указал размер, то выбирается именно заголовок иконки с этим размером. Но никогда иконка 16х16 не станет 64х64 пока не применить Stretch на битовый образ. Возможно, мы не правильно поняли друг друга, скорее всего так оно и есть.

[size=-2]------ Добавлено в 13:37
Geka, после пары дынь от Galkova c экпериментами по модификации Icon, я к нему больше пальцем не прикоснусь до особого распоряжения.
карма: 22

0
Ответов: 184
Рейтинг: 4
#11: 2007-06-08 13:46:30 ЛС | профиль | цитата
nesco, Скорее всего. Проблема у Geka заключалась, как я понял, в том, что всегда грузілась иконка размером 32x32 вместо нужной ему 128x128. Эту проблему я попытался решить, не вдаваясь в прочие ненужные (и может неизвестные) мне подробности.
карма: 1
Статус строка какая-то, сейчас посмотрім: %time%
0
Ответов: 632
Рейтинг: 16
#12: 2007-06-08 13:46:30 ЛС | профиль | цитата
[b]HuKTO[/b], к примеру я вставил иконку внутрь в
Add(Icon,14738724,133,287)
{
}
и как мне ее вывести в Image?, надо в самом компоненте встроить опцию разрешения:
8x8
16x16
24x24
32x32
64x64
128x128
256x256
карма: 0

0
Ответов: 184
Рейтинг: 4
#13: 2007-06-08 13:52:17 ЛС | профиль | цитата
nesco писал(а):
Geka, после пары дынь от Galkova

Что-то мне расхотелось с иконками возиться

[size=-2]------ Добавлено в 13:52
Geka, попробуй хранить в Bitmap'е (если "Вставил" значит сохранил в схеме). Там никаких проблем с размером нет.
карма: 1
Статус строка какая-то, сейчас посмотрім: %time%
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#14: 2007-06-08 13:53:07 ЛС | профиль | цитата
Geka, для таких целей этот компонент не пойдет вообще. Модуль KOL'a по считыванию для этой цели надо переделывать.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2007-06-08 14:00:19 ЛС | профиль | цитата
KOL основан на WinAPI, а WinAPI с древних времен предоставляет такой интерфейс, при котором из файла иконки можно получить только два формата: 16х16 и 32х32. Возможно в WinXP и имеются более продвинутые ф-ции для получения других размеров, а так же других форматов(таких как Icon XP), однако встречаться с таким не приходилось. Все приложения, которым это нужно получают данные прямым чтением из файла в соответствие со спецификацией.
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)