procedure TForm1.BitBtn1Click(Sender: TObject);
var
opendlg:topendialog;
f:file of byte;
begin
opendlg:=topendialog.create(application);
try
opendlg.filename:=editimagepath.text;
opendlg.Filter:='image(*.jpg)|*.jpg|*.jpg';
opendlg.Options:=opendlg.Options+[ofpathmustexist];
if opendlg.Execute then
begin
editimagepath.text:=opendlg.filename;if not(editimagepath.text='') then
begin
if fileexists(editimagepath.text) then
       begin
       
image1.Picture.loadfromfile(editimagepath.text);
opendlg.Free;
Image2.Height := 120;//新图像高度
Image2.Width := 150;//新图像宽度
Image2.Canvas.StretchDraw(Image2.ClientRect,Image1.Picture.Graphic);
Image2.Picture.SaveToFile('c:\b.jpg');//保存新图像
editimagepath.text:=''
end
   else      
application.messagebox('指定图片文件不存在','错误',mb_ok);
 end  elseapplication.messagebox('没有指定jpg图片文件','错误',mb_ok) ;
end 
  
  else
begin
application.messagebox('没有指定jpg图片文件','错误',mb_ok) ;
 end ;        finally
end ; end;
end.
存储的jpg文件在pb中使用是提示非jpg文件,怎么解决

解决方案 »

  1.   

    TImage只能保存bmp文件,转换为TJPEGImage保存
      

  2.   

    写成这样还是要报错啊
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    opendlg:topendialog;
    f:file of byte;
      Jpeg:TjpegImage;
    begin
    opendlg:=topendialog.create(application);
    try
    opendlg.filename:=editimagepath.text;
    opendlg.Filter:='image(*.jpg)|*.jpg|*.jpg';
    opendlg.Options:=opendlg.Options+[ofpathmustexist];
    if opendlg.Execute then
    begin
    editimagepath.text:=opendlg.filename;if not(editimagepath.text='') then
    begin
    if fileexists(editimagepath.text) then
           begin
       Jpeg:=tJpegImage.Create ;
       jpeg.LoadFromFile(editimagepath.text);
    //image1.Picture.loadfromfile(editimagepath.text);
    opendlg.Free;
    jpeg.Height := 300;//新图像高度
    jpeg.Width :=200;//新图像宽度
    //jpeg.Canvas.StretchDraw(jpeg.ClientRect,jpeg.graphic);
    jpeg.SaveToFile(editimagepath.text);
    jpeg.Free;
     //保存新图像
    editimagepath.text:=''
    end