Pregunta: | 43613 - INSERTAR JPEG EN PAINTBOX |
Autor: | David P M |
Quisiera saber como puedo insertar o abrir un archivo JPEG en un Paintbox para editarla. Gracias de antemano por vuestra ayuda.
Un saludo. |
Respuesta: | Juan Carlos Cañón M |
Directamente no puedes, pero si cargas primero la imagen (jpg) en un timage como bmp, luego puedes copiar del canvas del timage al canvas del Timage
para probar este ejemplo crea un proyecto con un tImage, un tPaintBox y un button y añade el siguiente codigo... procedure TForm1.CargaJpgBmp(Fichero : String); var B : TBitMap; It : TImage; ImageRect, PaintRect: TRect; begin {Procedimiento para cargar una fichero .Jpg sobre una imagen, convirtiendolo al formato .Bmp para poder usar el canvas. En la clausula Uses del Interface, debemos incluir la librería Jpeg} Fichero := AnsiUpperCase(Fichero); if Pos('.JPG',Fichero) > 0 then begin try B := TBitmap.Create; It := TImage.Create(Self); It.Picture.LoadFromFile(Fichero); B.Assign(It.Picture.Graphic); Image1.Picture.Assign(B); except ShowMessage('Error al cargar la imagen Jpeg'); Image1.Picture.Graphic := nil; end; B.Free; It.Free; end else begin Image1.Picture.LoadFromFile(Fichero); // Carga directamente el Bitmap end; // Copiamos de Image1 como bitmap hacia el canvas... ImageRect := Rect(0,0,Image1.Width,Image1.Height); PaintRect := ImageRect; PaintBox1.Canvas.CopyRect(PaintRect,Image1.Canvas,ImageRect); end; procedure TForm1.Button1Click(Sender: TObject); begin CargaJpgBmp('c:\filmoteca\graficas\fong sai yuk2.jpg') end; |