La Web del Programador: Comunidad de Programadores
 
    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;