大家好:
    我抓拍了一幅视频图像并把它存成.bmp格式的文件,但占硬盘空间为663k,有没有更好的办法把生成的图像文件存储得更小一点。    我生成.bmp图像文件的程序如下
procedure TForm1.Button2Click(Sender: TObject);
var filename:string;
begin
   datetimetostring(filename,'yyyymmddhhmmss',now);
   filename:='d:\dvc\Record\'+filename+'.jpg';
   dvc1.CaptureToClipBoard;
   sleep(200);
   application.ProcessMessages;
   Image1.Picture.Assign(Clipboard);
   image1.Stretch:=true;
   image1.Picture.SaveToFile(filename);
end;    我急需这个功能,请大家详细指导,谢谢!

解决方案 »

  1.   

    procedure Compress(var CompressedStream: TMemoryStream);
    var
      SourceStream: TCompressionStream;
      DestStream: TMemoryStream;
      Count: Integer;
    begin
      Count := CompressedStream.Size;
      DestStream := TMemoryStream.Create;
      SourceStream := TCompressionStream.Create(clMax, DestStream);
      try
        CompressedStream.SaveToStream(SourceStream);
        SourceStream.Free;
        CompressedStream.Clear;
        CompressedStream.WriteBuffer(Count, SizeOf(Count));
        CompressedStream.CopyFrom(DestStream, 0);
      finally
        DestStream.Free;
      end;
    end;---------------------
          MemStream := TMemoryStream.Create;
          try
            MemStream.LoadFromFile(filename);
            MemStream.Seek(0, soFromBeginning);
            Compress(MemStream);
            MemStream.SaveToFile(Filename);
          finally
            MenStream.free;
          end;