Форум: "Прочее";
Текущий архив: 2014.03.23;
Скачать: [xml.tar.bz2];
Внизаналог TImage Найти похожие ветки
← →
aka (2013-10-01 16:15) [0]Посоветуйте многоформатный аналог TImage , желательно с GIF
Delphi 7
← →
Туповатый © (2013-10-01 16:33) [1]a PSD должен поддерживать? а картинку, вставленную в .docx?
← →
aka (2013-10-01 16:35) [2]>> Туповатый © (01.10.13 16:33) [1]
нет не надо
← →
Туповатый © (2013-10-01 16:38) [3]http://www.torry.net
← →
DVM © (2013-10-01 16:50) [4]http://graphics32.org/wiki//Main/Graphics32
← →
Amoeba_ (2013-10-02 00:34) [5]GraphicEx library
http://www.soft-gems.net/index.php/libs/graphicex-library
Просто подключаешь, и обычный TImage становится многоформатным.
← →
aka (2013-10-05 19:45) [6]>>Amoeba_ (02.10.13 00:34) [5]
А грузить как?
Вот для Bmp, если JPG - то использовал TJPEGImage
procedure ShowImage(Grid: TStringGrid; Num: Integer; Image: TImage);
var
obj: ISuperObject;
Request: TStringList;
Response: TMemoryStream;
Img: TBitmap;
begin
try
Img := TBitmap.Create;
Request := TStringList.Create;
Response := TMemoryStream.Create;
try
DtModule.IdHTTP.Post(DtModule.HOST+"/product_img/"+Grid.Cells[1,Num],Request,Response);
Response.Position := 0;
Img.LoadFromStream(Response);
Image.Width := Img.Width;
Image.Height := Img.Height;
Image.Picture.Assign(Img);
except
Image.Picture.Assign(nil);
end;
finally
begin
Response.Free;
Request.Free;
end;
...................
end;
← →
aka (2013-10-05 23:35) [7]Получается что каждого типа картинок нужно указывать явно класс, к примеру для png - TPNGGraphic
Img = PNGGraphic.LoadFromStream(Response);
Image.Picture.Assign(Img);
Как в таком случае заранее узнать какой тип картинки будет загружаться?
← →
Туповатый © (2013-10-06 01:03) [8]по сигнатуре файла.
← →
aka (2013-10-06 13:39) [9]>>Туповатый © (06.10.13 01:03) [8]
так лучше и надежней, только код страшный - нужно еще добавить несколько форматов
procedure ShowImage(Grid: TStringGrid; Num: Integer; Image: TImage);
var
Request: TStringList;
Response: TMemoryStream;
GIF: TGIFGraphic;
PNG: TPNGGraphic;
JPG: TJPEGImage;
TIFF: TTIFFGraphic;
BMP: TBitmap;
isLoad: Boolean;
begin
isLoad := True;
try
Request := TStringList.Create;
Response := TMemoryStream.Create;
GIF := TGIFGraphic.Create;
PNG := TPNGGraphic.Create;
JPG := TJPEGImage.Create;
TIFF := TTIFFGraphic.Create;
BMP := TBitmap.Create;
try
DtModule.IdHTTP.Post(DtModule.HOST+"/product_img/"+Grid.Cells[1,Num],Request,Response);
except
isLoad := False;
end;
if(not isLoad) then Exit;
try
Response.Position := 0;
PNG.LoadFromStream(Response);
Image.Picture.Assign(PNG);
except
try
Response.Position := 0;
GIF.LoadFromStream(Response);
Image.Picture.Assign(GIF);
except
try
Response.Position := 0;
JPG.LoadFromStream(Response);
Image.Picture.Assign(JPG);
except
try
Response.Position := 0;
TIFF.LoadFromStream(Response);
Image.Picture.Assign(TIFF);
except
try
Response.Position := 0;
BMP.LoadFromStream(Response);
Image.Picture.Assign(BMP);
except
Image.Picture.Assign(nil);
end;
end;
end;
end;
end;
finally
begin
Response.Free;
Request.Free;
GIF.Free;
PNG.Free;
JPG.Free;
TIFF.Free;
BMP.Free;
end;
end;
end;
← →
Туповатый © (2013-10-06 14:29) [10]
> так лучше и надежней
чем лучше и чем надежней? страшностью и бредовостью?
← →
Туповатый © (2013-10-06 14:39) [11]использование кучи try еще не делает надежным.
вот зачем такая конструкция:var
....
isLoad: Boolean;
begin
isLoad := True;
try
....
try
DtModule.IdHTTP.Post(DtModule.HOST+"/product_img/"+Grid.Cells[1,Num],Request,Response);
except
isLoad := False;
end;
if(not isLoad) then Exit;
ни обработки ошибок, ни дальнейшей работы с DtModule.IdHTTP, который в следствие ошибки вообще в непонятном состоянии, и даже просто отсутствие логики - isLoad тут совершенно не работает, не нужна, выкини ее нафиг.
← →
Туповатый © (2013-10-06 14:45) [12]сама логика работы такова, что если бы на базе ее делать что-то другое, например, заниматься сексом, то получается так:
набиваем в клетку кучу живности.
заходим внутрь.
пытаемся полюбить.
укусило? не то.
продолжает кусать, но еще и грызет? не то.
добавилось ощущение жжения? не то.
кусает, грызет, жгет и рвет волосы? все не то, кастрируемся и всех убиваем.
← →
Inovet © (2013-10-06 14:49) [13]> [12] Туповатый © (06.10.13 14:45)
> кастрируемся и всех убиваем
Яд уже распространился в другие органы.
← →
aka (2013-10-06 16:56) [14]>>Яд уже распространился в другие органы.
Но организм живой и продолжает работать. А главное - не подает внешних признаков
>> вот зачем такая конструкция:
Ничего убирать не нужно - в случае отсутствие нужной картинки на сервере "в клетку не заходим"
← →
Inovet © (2013-10-06 17:51) [15]> [14] aka (06.10.13 16:56)
> Но организм живой и продолжает работать.
Если скопцу откусила овца,
что-то не так было в детстве скопца.
← →
Туповатый © (2013-10-06 18:11) [16]
> aka (06.10.13 16:56) [14]
> в случае отсутствие нужной картинки на сервере "в клетку
> не заходим"
логика твоего кодаa := True;
if b then a := false;
if(not a) then Exit;
не проще лиif(b) then Exit
?
← →
НЛО (2013-10-08 07:01) [17]Может считать заголовок и на основании того кто это создавать объект?
Заголовок TGA-файла
http://delphiworld.narod.ru/base/tga_file_caption.html
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.03.23;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.002 c