Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.14;
Скачать: CL | DM;

Вниз

использование png и canvas   Найти похожие ветки 

 
inkakas   (2009-12-13 03:10) [0]

Всем день добрый.
Есть компонент 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


 
KilkennyCat ©   (2009-12-13 03:53) [1]

нда.
в картинке одно имя, в коде - другое, и там и там неверное, ошибка явно сказана, чему хинстансе равно не указано, тупейшую справку
procedure LoadFromResourceName(Instance: THandle; const ResName: string);
Description
Loads an image from a resource. Instance is the handle of the module that contains the resource. ResName is the name of the resource to load. не прочитать...

тоска.


 
KilkennyCat ©   (2009-12-13 03:54) [2]

Добавлю, на всякий случай. Требуется указать имя в ресурсе. В ресурсе. А не неизвестный никому путь.


 
sniknik ©   (2009-12-13 11:31) [3]

> Требуется указать имя в ресурсе. В ресурсе. А не неизвестный никому путь.
ну, и наверняка там есть обратное решение, в смысле процедура открывающая с пути а не с ресурса.


 
inkakas   (2009-12-13 14:00) [4]

Даже если делаю так, то вместо png белый фон

var png: TPNGObject;

png := TPNGObject.Create;
png.LoadFromFile("IMG\PersonalNow\1.png");
Img46.Canvas.Draw(643, 25, png);


 
KilkennyCat ©   (2009-12-13 14:58) [5]

Пути относительные... точно файл-то грузится?


 
sniknik ©   (2009-12-13 16:25) [6]

> вместо png белый фон
а так?
Img46.Picture.Bitmap.Assign(png);


 
inkakas   (2009-12-13 19:13) [7]


> > вместо png белый фон
> а так?
> Img46.Picture.Bitmap.Assign(png);

так работает, но картинка отображается как битмап и альфа канал не работает, мне нужно с альфой


 
Andy BitOff ©   (2009-12-13 19:23) [8]

Выводи через GDI+


 
inkakas   (2009-12-13 21:06) [9]

Не могу найти GDI+ на D7. На D6 ставится на D7 нет. Качал тут
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=772 в итоге файл GDIPOBJ.pas не компилируется.


 
antonn ©   (2009-12-13 21:15) [10]

как вывести Tbitmap 32- битный тут http://delphimaster.net/view/8-1253597355/
как сконвертить png в битмап тут http://forum.vingrad.ru/forum/topic-282994.html


 
antonn ©   (2009-12-13 21:20) [11]

тьфу, по последней ссылке 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;


 
Andy BitOff ©   (2009-12-13 21:24) [12]

> inkakas   (13.12.09 21:06) [9]

http://bitoff.ru/animationsplash/gdiplus.zip


 
inkakas   (2009-12-13 22:13) [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 22:40) [14]

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;


 
antonn ©   (2009-12-13 22:56) [15]


> Он же выведен через gdi+ с помощью процедуры antonn"a...

у меня нет там GDI+, обычный гди. Потому что я не люблю over-OOP этого самого GDI+ :)

выложи этот самый битмап, но не в jpg, а оригинальный


 
inkakas   (2009-12-14 08:13) [16]


> у меня нет там GDI+, обычный гди. Потому что я не люблю
> over-OOP этого самого GDI+ :)
>
> выложи этот самый битмап, но не в jpg, а оригинальный


http://www.box.net/shared/lr8ihopji8


 
Andy BitOff ©   (2009-12-14 11:34) [17]


> 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 12:01) [18]

Всем спасибо! Andy BitOff огромное спасибо, это и надо было! Ура! :)


 
antonn ©   (2009-12-14 15:30) [19]


> http://www.box.net/shared/lr8ihopji8

это изображение не содержит нормального альфаканала. Точнее оно там обнуленое.
а надо чтобы было так http://desksoft.ru/index.php?downloads=attachments&id=245


 
inkakas   (2009-12-14 22:02) [20]

ниче се, незнал, спасибо :)


 
brother ©   (2009-12-15 09:27) [21]

> http://desksoft.ru/index.php?downloads=attachments&id=245

и чего там? у меня, черный квадрат)


 
Anatoly Podgoretsky ©   (2009-12-15 09:49) [22]

> brother  (15.12.2009 09:27:21)  [21]

Там квадрат Малевича.


 
brother ©   (2009-12-15 09:57) [23]

я так и понял)


 
antonn ©   (2009-12-15 22:29) [24]


> и чего там? у меня, черный квадрат)

там битмап с альфаканалом, RGB черный, альфа та что дана автором :)


 
antonn ©   (2009-12-15 22:37) [25]

разобрать на составляющие можно этой куцой прогой http://desksoft.ru/index.php?forum=13&th=192 или написать свою :)
Корел 10й не умеет по умолчанию работать с bmp 32х битным :(



Страницы: 1 вся ветка

Текущий архив: 2010.02.14;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.011 c
15-1260382113
@!!ex
2009-12-09 21:08
2010.02.14
Подскажите советское кино с танцами.


15-1260203381
БарЛог
2009-12-07 19:29
2010.02.14
В Китае задержали водителя с картоном вместо лобового стекла :)


15-1260396487
TStas
2009-12-10 01:08
2010.02.14
Дискета с нортоном


2-1260986848
Михаил Левшов
2009-12-16 21:07
2010.02.14
Как очистить все окошки редактирования на форме (TEdit)


15-1260203464
boriskb
2009-12-07 19:31
2010.02.14
Ищу ПО для работы с архивом изображений