![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
использование png и canvas
inkakas © (2009-12-13 03:10:00)Всем день добрый.
Есть компонент TPNGImage. Вывожу через FormСreate так:
var png: TPNGObject;
png := TPNGObject.Create;
png.LoadFromResourceName(HInstance, 'IMG\PersonalNow\1.png'); Canvas.Draw(х, у, png);
И после запуска в итоге он не видет мой png
http://img.pixs.ru/storage/6/6/9/1jpg_6642995_378669.jpg
antonn (2009-12-15 22:37:00) [1]разобрать на составляющие можно этой куцой прогой http://desksoft.ru/index.php?forum=13&th=192или написать свою :)
Корел 10й не умеет по умолчанию работать с bmp 32х битным :(
antonn (2009-12-15 22:29:00) [2]
> и чего там? у меня, черный квадрат)
там битмап с альфаканалом, RGB черный, альфа та что дана автором :)
brother (2009-12-15 09:57:00) [3]я так и понял)
Anatoly Podgoretsky (2009-12-15 09:49:00) [4]> brother (15.12.2009 09:27:21) [21]
Там квадрат Малевича.
brother (2009-12-15 09:27:00) [5]> http://desksoft.ru/index.php?downloads=attachments&id=245
и чего там? у меня, черный квадрат)
inkakas (2009-12-14 22:02:00) [6]ниче се, незнал, спасибо :)
antonn (2009-12-14 15:30:00) [7]
> http://www.box.net/shared/lr8ihopji8
это изображение не содержит нормального альфаканала. Точнее оно там обнуленое.
а надо чтобы было так http://desksoft.ru/index.php?downloads=attachments&id=245
inkakas (2009-12-14 12:01:00) [8]Всем спасибо! Andy BitOff огромное спасибо, это и надо было! Ура! :)
Andy BitOff (2009-12-14 11:34:00) [9]
> inkakas (13.12.09 03:10)
http://img682.imageshack.us/i/testla.png/
procedure TForm1.FormPaint(Sender: TObject);
var
graphics : TGPGraphics;
Image: TGPBitmap;
begin
Canvas.TextOut(20, 50, 'Test : Test : Test');
graphics := TGPGraphics.Create(Canvas.Handle);
Image := TGPBitmap.Create('Untitled-1.png');
graphics.DrawImage(Image, 0, 0);
Image.Free;
graphics.Free;
end;
inkakas (2009-12-14 08:13:00) [10]
> у меня нет там GDI+, обычный гди. Потому что я не люблю
> over-OOP этого самого GDI+ :)
>
> выложи этот самый битмап, но не в jpg, а оригинальный
http://www.box.net/shared/lr8ihopji8
antonn (2009-12-13 22:56:00) [11]
> Он же выведен через gdi+ с помощью процедуры antonn'a...
у меня нет там GDI+, обычный гди. Потому что я не люблю over-OOP этого самого GDI+ :)
выложи этот самый битмап, но не в jpg, а оригинальный
Andy BitOff (2009-12-13 22:40:00) [12]gdiplus.zip\demos\Using Images, Bitmaps, and Metafiles\Loading and Displaying Bitmaps\GDITEST41.dpr
Procedure OnPaint(DC: HDC);
var
graphics : TGPGraphics;
Image: TGPImage;
begin
graphics := TGPGraphics.Create(DC);
// from file
Image:= TGPImage.Create('..\..\Media\FRUIT.JPG');
graphics.DrawImage(Image,60,10);
Image.Free;
graphics.Free;
end;
inkakas (2009-12-13 22:13:00) [13]Наверно я вообще дурак. Спасибо за статью "как вывести 32хный битмап", все сделал, вот такие результаты:
32х битный битмап с альфаканалом
http://img.pixs.ru/storage/5/2/6/1JPG_2622497_379526.jpg
Он же выведен через gdi+ с помощью процедуры antonn'a...
http://img.pixs.ru/storage/5/2/9/2JPG_7949565_379529.jpg
вместо прозрачности что-то не то(
Andy BitOff (2009-12-13 21:24:00) [14]> inkakas (13.12.09 21:06) [9]
http://bitoff.ru/animationsplash/gdiplus.zip
antonn (2009-12-13 21:20:00) [15]тьфу, по последней ссылке bmp в png :)
png в битмап примерно так:
var bres:tbitmap; iii,ii:integer;
PNB:TPngObject; fff:PRGBAArray; aaa:pByteArray;
begin
PNB:=TPngObject.Create;
bres:=tbitmap.Create;
try
PNB.LoadFromFile('1.png');
pnb.CreateAlpha;
bres.Assign(pnb);
bres.PixelFormat:=pf32bit;
for ii:=0 to bres.Height-1 do begin
fff:=bres.ScanLine[ii];
aaa:=pnb.AlphaScanline[ii];
for iii:=0 to bres.Width-1 do begin
fff[iii].rgbReserved:=aaa[iii];
end;
end;
bres.SaveToFile('_32.bmp');
finally
bres.Free;
PNB.free;
end;
antonn (2009-12-13 21:15:00) [16]как вывести Tbitmap 32- битный тут http://www.delphimaster.ru/cgi-bin/forum.pl?id=1253597355&n=7
как сконвертить png в битмап тут http://forum.vingrad.ru/forum/topic-282994.html
inkakas (2009-12-13 21:06:00) [17]Не могу найти GDI+ на D7. На D6 ставится на D7 нет. Качал тут
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=772в итоге файл GDIPOBJ.pas не компилируется.
Andy BitOff (2009-12-13 19:23:00) [18]Выводи через GDI+
inkakas (2009-12-13 19:13:00) [19]
> > вместо png белый фон
> а так?
> Img46.Picture.Bitmap.Assign(png);
так работает, но картинка отображается как битмап и альфа канал не работает, мне нужно с альфой
sniknik (2009-12-13 16:25:00) [20]> вместо png белый фон
а так?
Img46.Picture.Bitmap.Assign(png);