procedure TForm1.Button1Click(Sender: TObject); begin Tbutton(sender).Enabled := false; if OpenPictureDialog1.Execute then begin DrawRect(OpenPictureDialog1.FileName) end; Tbutton(sender).Enabled := true; end; procedure TForm1.DrawRect(PicFile: string); //传进去的是一张图片的路径,包含文件名 var FBMP: TBitmap; jpeg: TJpegImage; TempMs: TmemoryStream; begin TempMs := nil; FBMP := nil; jpeg := nil; try FBMP := TBitmap.Create; jpeg := TJpegImage.Create; TempMs := TmemoryStream.Create; jpeg.LoadFromFile(PicFile); fbmp.Assign(jpeg); // fbmp.Canvas.Brush.Style := bsSolid; // fbmp.Canvas.Brush.Color := clBlack; // for I := 0 to 7 do //因为最多可以画八个黑色的区域 // if (Points[I, 0].X <> 0) and (Points[I, 0].Y <> 0) and (Points[I, 1].X <> 0) and (Points[I, 1].Y <> 0) then // FBMP.Canvas.FillRect(Rect(Points[I, 0].X, Points[I, 0].Y, Points[I, 1].X, Points[I, 1].Y)); fbmp.Canvas.Font.Color := clBlue; fbmp.Canvas.Font.Name := 'Comic Sans MS'; fbmp.Canvas.Font.Size := 22; fbmp.Canvas.TextOut(10, 10, 'David Zhao'); with jpeg do begin Assign(fbmp); CompressionQuality := 80; //压缩比例 Compress; SaveToFile(PicFile + '_2.jpg'); //保存路径…… end; finally TempMs.Free; FBMP.Free; jpeg.Free; end; end;