Je me bagarre avec les TBitMap, TGraphic, TImage, TPicture, TPaintBox, TJegImage plus les canvas.
J'avoue ne pas très bien me mouvoir dans ses composants qui portent tous sur le traitement de l'image.
Mon problème actuel. J'ai en mémoire un buffer qui contient une image JPeg. Je veux l'afficher.
J'ai choisi pour cela un TImage.
Avec ce code, où l'image passe d'abord par un TMemoryStream j'arrive au résultat, cela me parait un peu lourd; il y aurait-il mieux?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 StreamImage := TMemoryStream.Create; JpegImage := TJpegImage.Create; BitMapImage := TBitMap.Create; StreamImage.Write(BufferImage^, LengthImage); {passage du buffer au memory stream} StreamImage.Position := 0; JpegImage.LoadFromStream(StreamImage); {pour décompression } BitMapImage.Width := JpegImage.Width; BitMapImage.Height := JpegImage.Height; BitMapImage.Canvas.Draw(0,0,JpegImage); {transformation en bitmap } {affichage dans le TImage } Image1.Canvas.StretchDraw( Rect(0,0,Image1.Width,Image1.Height),BitMapImage); JpegImage.Free; {on libère tout } StreamImage.Free; BitMapImage.Free;
Merci de vos conseils avisés.
Partager