Hola Dilferos.
Lo que estoy intentando hacer es aumentar la imagen de un Timagen. Si es bmp funciona bien pero si es un jpg me sale este error:
"programa exception class EInvalidOperation with message 'Can only modify an image if it contains a bitmap".
El proceso se ejecuta en el evento del Timagen OnMouseMove. ¿ Que me esta fallando con el jpg?
Código Delphi
[-]Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, MemDS, DBAccess, MyAccess, DBCtrls, Grids, DBGrids, CRGrid,
Jpeg, ExtCtrls, StdCtrls, FileCtrl, ComCtrls, Buttons, GraphicEx,
EDBImage;
.
.
.
procedure Tfrmvehiculos.imgMainMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
Seleccion: TRect;
begin
pbZoom.Visible := True;
tbZoom.Visible := True;
if ssLeft in Shift
then
begin
Seleccion.Left:= X - 50;
Seleccion.Right:= X + 50;
Seleccion.Top:= Y - 50;
Seleccion.Bottom:= Y + 50;
Copiar(imgMain.Canvas.Handle,pbZoom.Canvas.Handle,Seleccion,tbZoom.Position);
end;
end;
procedure Copiar(SrcDC, DestDc: HDC; SrcRect: TRect; Zoom: Integer);
var
Ancho, Alto: Integer;
begin
Ancho:= SrcRect.Right - SrcRect.Left;
Alto:= SrcRect.Bottom - SrcRect.Top;
StretchBlt(DestDC, 0, 0, Ancho * Zoom, Alto * Zoom, SrcDC, SrcRect.Left,SrcRect.Top, Ancho, Alto, SRCCOPY);
end;