Форум: "Начинающим";
Текущий архив: 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