Създаване на ICO BMP с прозрачен фон

Създаване на ICO от BMP с прозрачен фон

Добре дошли!
Кажи ми, моля те, че е възможно в Делфи, за да създадете файл във формат от BMP-файл с прозрачен фон? ICO от BMP съм направил, но да се създаде прозрачен фон в иконата не работи, т.е. Трябва да има прозрачен фон беше "зашит" във файла ICO.

Може да е неуместно редактор на изображения

В-в! Аз също не мога да го направя. Кой е отговорен (по лесния начин) - той е само един герой в очите ми. -)

софтуер е възможно, така че
процедура TForm1.Button1Click (Sender: TObject);
Var
IML: TImageList;
започвам
IML: = TImageList.CreateSize (32,32);
Iml.AddMasked (Image1.Picture.Bitmap, clWhite);
Iml.GetIcon (0, Image2.Picture.Icon);
Image2.Picture.SaveToFile ( "1.ico");
iml.Free;
приключи;

Не колела. Тя не беше имал предвид. Ето, например, да качите снимка имате в TImage, например, една кола на черен фон. Тя иска да премахне фона и спаси BMP "shku като икона Това означава, че ако, да речем, Image1 е тази снимка, а след това в причиняване Image1.Picture.Bitmap.SaveToFile. (" D: \ icon.ico ") Файловете се съхраняват в иконата без фон и без загуба на качество на цветовете. момичето, тази икона се съхранява без загуба на качество, но на фона остава, и че е необходимо да се отървете от него.

Олга, не ме разбирайте погрешно, аз ще взема въпроса си в друг форум. Не лов пренапише всички свои думи - просто копирайте, нали?

и това, което акцентът?
в Iml.AddMasked (Image1.Picture.Bitmap, clWhite); # XA0;?
като фигура! като фон е розово, и така е!

и плюс на този кълне Невалиден размер

Това е! Предшестващо-остава непрозрачна. и грешката не се хвърли върху мен.

Ще се поправи: на заден план е непрозрачен, дори и да напишете: Iml.AddMasked (Image1.Picture.Bitmap, clRohovy \ синьо \ или сиво-кафяво-пурпурно); # XA0;

Има дори 2 решения

Аз не разбирам, не сте изпълнили?

Не колела. Тя не беше имал предвид. Ето, например, да качите снимка имате в TImage, например, една кола на черен фон. Тя иска да премахне фона и спаси BMP "shku като икона Това означава, че ако, да речем, Image1 е тази снимка, а след това в причиняване Image1.Picture.Bitmap.SaveToFile. (" D: \ icon.ico ") Файловете се съхраняват в иконата без фон и без загуба на качество на цветовете. момичето, тази икона се съхранява без загуба на качество, но на фона остава, и че е необходимо да се отървете от него.

В действителност, това е смешно и вие сами не разбират това, което правиш.

това спестява BMP файл с разширение .ico. Това не е истинска икона! Просто Windows е в състояние да прочете растерна графика и да ги представя като икона. Но е необходимо да отворите чрез Irfan View, например, програмата ще ви кажа, че това е всъщност BMP, ICO, вместо. По този начин никога няма да получите пълен икони.

Между другото, Win 98 Приемам белият цвят на прозрачната в този случай, т.е. възможно е да се създаде прозрачна икона. Но не е така.

Четох предишното обсъждане на тази тема
Можете, kokretno посочете кои две решения са там?
се опитва да се преправи под Borland primerchik - Не мога да разбера как да се приложи вече съществуващата ICO файл? добре, или по-добре да се каже, на съществуващата tImage или tBitmap (да, колкото искате!), а не ръчно рисувани червен кръг! както в растерна графика настроен черно-бял фон?

И аз имам един пример (Grom (01.09.04 13:54) [3]), работи добре.
Просто вместо clWhite трябва да напишете цвета, който искате да направите прозрачен.
Съхранявана икона е доста добро качество с prozranym фон.
Videmo минаваща през ImageList Bitmap изображение kakimto начин там конвертиране.
== Какво е мнението ви ==


> Мога, kokretno посочете кои две решения са там?


> Опитвайки се да се преправи под Borland primerchik - Не мога да разбера как да се приложи вече съществуващата ICO файл? добре, или по-добре да се каже, на съществуващата tImage или tBitmap (да, колкото искате!), а не ръчно рисувани червен кръг!

Как да се прилагат TBitmap? # XA0; вместо:


# XA0; AndMask. TBitmap;
# XA0; XOrMask. TBitmap;

използвате растерни изображения.

Какво искаш да кажеш фон? Вие искате да създадете TBitmap бял или черен? Създаване и използване на FillRect.

Ах-ах-ах-ах-ах-ах. Не ви разбирам, че не ме разбират. Аз няма да те питам нещо за иконите, които нито ти, обърка, а не да се обърка.
Мен тези икони izeli месеца от живота. (


> Ах-Ах-Ах-Ах-Ах-Ах. Не ви разбирам, че не ме разбират. аз
Ще> вече не ви попитам нещо за иконите, които
> Или пък обърка, а не да се обърка.
> Имам тези икони izeli месеца от живота. (

Не, аз все още го разбера. Стоп на този етап и не напредва навсякъде, докато не може да каже какво е това, което.

Между другото, за връзката, много LOL. Виж, те пишат:


Процедура DrawTransparentBmp (CNV: TCanvas; X, Y: цяло число; Bmp: TBitmap; clTransparent: TColor);

Това се нарича масло-масло. Имаме TBitmap Прозрачна собственост и метод Draw, който се реализира тук направо по същия начин, както на процедурата.

А освен това, че не се интересува от извежда изображението прозрачен (да го направи лесно, както казахме, с имота прозрачен), имам нужда от прозрачност е пришита към графичния файл, така че фоновото изображение е само по себе си прозрачен и не гледам прозрачен!

Добре, сега се опитвам да се прилага Grom съвети, Rem (отново!) И Mihey_temporary

процедура TForm1.Button1Click (Sender: TObject);
Var
newIcon. tIcon;
ImageList. tImageList;
hBmp. THandle;
BkCol. TColor;
започвам
// Дефиниране на цвета на фона на изображението
hBmp: = bmpImage.Picture.Bitmap.Canvas.Handle;
BkCol: = GetPixel (hBmp, 0, 0);

// Ние тяга Bitmap в ImageList
ImageList: = tImageList.Create (самостоятелно);
ImageList.AddMasked (bmpImage.Picture.Bitmap, BkCol);

// Ние измести Bitmap до иконата
newIcon: = tIcon.Create;
ImageList.GetIcon (0, newIcon);

// Запис на иконата на получения файл
newIcon.SaveToFile (icoFileName);

> Има икони по-сложна структура. Те могат да съдържат няколко чертежи. Аз не ги разбирам.

В допълнение, 32-битово не се поддържа. Така че това не е опция.

Sluhay ли да ми кажете по принцип това, което искате да направите нещо за икони, които изтезания? О, и вие измисли прозрачен фон или въпрос защо нещо все пак се отвори?

Ако съдията на Visual Basic, което е, готови решения за www.vbaccelerator.com

Трябва да се създадат две растерни изображения, растерна маска (нека го наречем "И" растерни) и растерни изображения (нека го наречем XOR растерна графика). Можете да пропуснете, работещи за "И" и "XOR" # XA0; растерни изображения в Windows API CreateIconIndirect () функция и да използвате манипулатор върнати от икони в приложението си.

процедура TForm1.Button1Click (Sender: TObject);
Var
# XA0; IconSizeX. цяло число;
# XA0; IconSizeY. цяло число;
# XA0; AndMask. TBitmap;
# XA0; XOrMask. TBitmap;
# XA0; IconInfo. TIconInfo;
# XA0; Icon. TIcon;
започвам

# XA0; IconSizeX: = GetSystemMetrics (SM_CXICON);
# XA0; IconSizeY: = GetSystemMetrics (SM_CYICON);


# XA0; AndMask: = TBitmap.Create;
# XA0; AndMask.Monochrome: = вярно;
# XA0; AndMask.Width: = IconSizeX;
# XA0; AndMask.Height: = IconSizeY;


# XA0; AndMask.Canvas.Brush.Color: = clWhite;
# XA0; AndMask.Canvas.FillRect (Rect (0, 0, IconSizeX, IconSizeY));
# XA0; AndMask.Canvas.Brush.Color: = clBlack;
# XA0; AndMask.Canvas.Ellipse (4, 4, IconSizeX - 4, IconSizeY - 4);


# XA0; Form1.Canvas.Draw (IconSizeX * 2, IconSizeY, AndMask);


# XA0; XOrMask: = TBitmap.Create;
# XA0; XOrMask.Width: = IconSizeX;
# XA0; XOrMask.Height: = IconSizeY;


# XA0; XOrMask.Canvas.Brush.Color: = ClBlack;
# XA0; XOrMask.Canvas.FillRect (Rect (0, 0, IconSizeX, IconSizeY));
# XA0; XOrMask.Canvas.Pen.Color: = clRed;
# XA0; XOrMask.Canvas.Brush.Color: = clRed;
# XA0; XOrMask.Canvas.Ellipse (4, 4, IconSizeX - 4, IconSizeY - 4);


# XA0; Form1.Canvas.Draw (IconSizeX * 4, IconSizeY, XOrMask);


# XA0; Икона: = TIcon.Create;
# XA0; IconInfo.fIcon: = вярно;
# XA0; IconInfo.xHotspot: = 0;
# XA0; IconInfo.yHotspot: = 0;
# XA0; IconInfo.hbmMask: = AndMask.Handle;
# XA0; IconInfo.hbmColor: = XOrMask.Handle;
# XA0; Icon.Handle: = CreateIconIndirect (IconInfo);


# XA0; Form1.Canvas.Draw (IconSizeX * 6, IconSizeY, икона);


# XA0; InvalidateRect (Application.Handle, нула, вярно);

2 Fish
Благодаря ви за "повторение. - майката на живот"

Послепис И защо ми хрумна идеята за написването на програма за извличане и спаси икона. -)

Добре, съкратено. Някога Завършено още се чете от EXE и DLL, но не е до иконите.