Главная страница
    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.005 c
13-1124359065
Cherrex
2005-08-18 13:57
2010.02.14
Есть ли аналог компонентов Data Controls


15-1260140497
KilkennyCat
2009-12-07 02:01
2010.02.14
ночная поэзия


15-1260214111
Маркер Бабуина
2009-12-07 22:28
2010.02.14
гатский фонт


15-1260134838
Германн
2009-12-07 00:27
2010.02.14
Что в Си означает cout<<" n"?


1-1238073068
Afonya
2009-03-26 16:11
2010.02.14
ошибка при передаче формальных параметров





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский