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

Вниз

аналог 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
2-1369649164
alexdn
2013-05-27 14:06
2014.03.23
Мигает картинка


2-1370095621
Cobalt
2013-06-01 18:07
2014.03.23
TReader error: Invalid property value


6-1271671471
bwwebm
2010-04-19 14:04
2014.03.23
WinSocket / Сокеты / RAW Socket - паралельное чтение


15-1380905527
BBC
2013-10-04 20:52
2014.03.23
XML просмотрщик


2-1370709869
sanekgyrev
2013-06-08 20:44
2014.03.23
Написал,но вкралась ошибка( выделена восклицательным знаком)