Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1370071648
Fr
2013-06-01 11:27
2014.03.23
Drag & Drop и TDrawGrid


15-1380832202
Юрий
2013-10-04 00:30
2014.03.23
С днем рождения ! 4 октября 2013 пятница


6-1271980517
Дмитрий С
2010-04-23 03:55
2014.03.23
Получения текста TXT записи зоны.


3-1296788998
Кайрат
2011-02-04 06:09
2014.03.23
Работа с датами


1-1323258416
Kamilos
2011-12-07 15:46
2014.03.23
Как сделать чтобы Image изменялся вместе с формой?





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