Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];

Вниз

использование 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.004 c
15-1260276252
NailMan
2009-12-08 15:44
2010.02.14
Нужна помошь линуксоидов в написании части скрипта


15-1260353314
ocean
2009-12-09 13:08
2010.02.14
Mozilla с Avast?


15-1260221418
Юрий
2009-12-08 00:30
2010.02.14
С днем рождения ! 8 декабря 2009 вторник


2-1260805424
JohnKorsh
2009-12-14 18:43
2010.02.14
Delphi 7 перестал останавливатться по Breakpoint.


2-1261037894
JohnKorsh
2009-12-17 11:18
2010.02.14
Ворос по INDY.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский