Newsgroup: it.comp.lang.delphi
Titolo: carica immagine in memoria

salve
ho necessità di caricare una immagine in memoria (stream) per poi poterla
usare con tutti i componente borland
già con il timage ho avuto problemi... non trovo il modo di fargliela
leggere
da dove potrei cominciare ?

 da dove potrei cominciare ?
per esempio, potresti cominciare a spiegare quali sono stati i tuoi
problemi con un minimo di dettaglio in più, eventualmente qualche
stralcio di codice sarebbe opportuno. Prova inoltre a descriver cosa
stai cercando di ottenere, in genere riuscire a comprendere la
problematica può favorire soluzioni semplice e/o eleganti ;-)
guastatore

 ha scritto nel messaggio
news:MWiZd.655498$b5.29...@news3.tin.it...

In pratica carico l'immegine con lo TFilestream da un file poi provo a
visualizzarla ma non va
il codice è c++ .... posto ugualmente  ?

 ha scritto nel messaggio
news:jEkZd.1060368$35.39...@news4.tin.it...


 ha scritto nel messaggio 
news:d164hm$1ts$1...@balena.cs.interbusiness.it...

Si l'ho fatto
ecco il codice :
//carica dentro un buffer di char
  std::ifstream or("a2.bmp",ios::in|ios_base::binary);
  long len = or.tellg();
  char * buf = new char[ len ];
  or.seekg( 0, ios::beg );
  or.read( buf, len );
  or.close();
  Graphics::TBitmap *bitmap = new Graphics::TBitmap();
  TMemoryStream *stream = new TMemoryStream();
  stream->Read(buf,len);
  stream->Seek(0,0);
//qua le ho provate tutte
 // bitmap->LoadFromStream(stream);
 // Image1->Picture->Bitmap->LoadFromStream(stream) ;
  //Bitmap->LoadFromStream(stream);
  Graphics::TBitmap *bmp=new Graphics::TBitmap();
  bmp->LoadFromStream(stream);
  Image1->Picture->Assign(bmp);
grazie ciao 


Sono Ot la :) il mondo borland non è conosciuto cmq le vcl sono quasi 
uno-a-uno fra delphi e borland
(altrimenti non mi sarei permesso) 

 (altrimenti non mi sarei permesso)
http://tinyurl.com/6tkt7
L'ho trovato con google groups nella gerarchia borland.public.cpp.*
Ciao
-- 
Morde. 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

Per caricare l'mmagine dal file devi usare:
Image1.Picture.LoadFromFile('Nome.bmp');
Per salvarla in uno Stream:
Stream.Clear;
Image1.Picture.Bitmap.SaveToStream(Stream);
per leggerla dallo Stream:
Stream.Position:=0;
Image2.Picture.Bitmap.LoadFromStream(Stream);
Giorgio

 ha scritto nel messaggio 
news:d16kav$hb1$1...@balena.cs.interbusiness.it...

ok ma se io voglio caricarla come buffer (perchè ci devo fare delle 
elaborazioni) e poi
usare lo stream per caricare l'immgine come posso fare ? 


ho risolto. 


X-Original-X-Trace: 
individual.net
 l4xnBbAd/sPA/q0dRdY2oAhJYBq5c8hoOzVqc6AxqEJKglMj/U
X-Cancel-ID: EXK+D;+%RBH/0C5*M<B#E,>Z^\'B]?I:/W)E>N7XL\3WZBOQ$B4JBF^B
Xref: 
bofh.it
 control.cancel:53925187
Cancel ID: EXK+D;+%RBH/0C5*M<B#E,>Z^\'B]?I:/W)E>N7XL\3WZBOQ$B4JBF^B

 ho risolto.
E per favore puoi mettere la tua soluzione a contributo di tutti?
;-)


 > ok ma se io voglio caricarla come buffer (perchč ci devo fare delle


 ;-)
Certo scusate e che sono sempre di fretta il lavoro sai com'è
Io avevo scritto questo (ho tolto i commenti)
//carica dentro un buffer di char
  std::ifstream or("a2.bmp",ios::in|ios_base::binary);
  long len = or.tellg();
  char * buf = new char[ len ];
  or.seekg( 0, ios::beg );
  or.read( buf, len );
  or.close();
  Graphics::TBitmap *bitmap = new Graphics::TBitmap();
  TMemoryStream *stream = new TMemoryStream();
  stream->Read(buf,len);
  stream->Seek(0,0);
  Graphics::TBitmap *bmp=new Graphics::TBitmap();
  bmp->LoadFromStream(stream);
  Image1->Picture->Assign(bmp);
//il codice corretto è questo
  std::ifstream or("a2.bmp",ios::in|ios_base::binary);
  or.seekg( 4, ios::end );
  long len = or.tellg();
  char * buf = new char[ len ];
  or.seekg( 4, ios::beg );
  or.read( buf, len );
  or.close();
  TMemoryStream *stream = new TMemoryStream();
  Graphics::TBitmap *bitmap = new Graphics::TBitmap();
  stream->Write(buf,len);
  stream->Seek(0,0);
  bitmap->LoadFromStream(stream);
  Image1->Picture->Assign(bitmap);
l'errore è qua io usavo :   stream->Read(buf,len);
invece era stream->Write(buf,len); in pratica stream vcl e stream c++ (nel 
mio caso) come concetti sono invertiti
grazie ciao

 mio caso) come concetti sono invertiti
Perfetto.
Siccome mi ero interessato anche io mi faceva piacere capire come avevi
risolto, nulla di piu'..
ciao


 (altrimenti non mi sarei permesso)
http://tinyurl.com/6tkt7
L'ho trovato con google groups nella gerarchia borland.public.cpp.*
Ciao
-- 


 (altrimenti non mi sarei permesso)
http://tinyurl.com/6tkt7
L'ho trovato con google groups nella gerarchia borland.public.cpp.*
Ciao
-- 
Morde. 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/
========= WAS CANCELLED BY =======:



Conoscevo gią quella soluzione ma la volevo evitare :-)