Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

использование png и canvas


Страницы:   1 2

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);


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо