首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用VideoCap1控件拍照图压缩有关问题

2012-04-26 
用VideoCap1控件拍照图压缩问题!我用VideoCap1控件做了个摄像头拍照,拍照的图片会自动生成在程序的根目录“

用VideoCap1控件拍照图压缩问题!
我用VideoCap1控件做了个摄像头拍照,拍照的图片会自动生成在程序的根目录“Capture.bmp”,但是我发现这个图片太大了,居然有900K,我想在保存图片的时候把尺寸缩小原来的十分之一,把图片大小控制在90k左右,我改如何实现呢?麻烦各位大哥帮小弟看看,万分感谢!

以下是拍照事件的原代码

procedure TForm2.Button1Click(Sender: TObject);
Var 
 bmp: TBitmap;
 strfilename:String;
begin
  inherited;
  strfilename:=extractfilepath(Application.ExeName);
  begin
  if not VideoCap1.SaveAsDIB then
  begin
  ShowMessage('拍摄照片失败');
  Abort;
  end;
  end;

[解决办法]
http://blog.csdn.net/xwchen/article/details/1799037
[解决办法]
我替你在BAIDU上搜的,应该就是这个,试着改变宽和高(edit1,edit2)看一下文件大小就可以了。
[解决办法]
bmp是有点大, 你转一下jpg就好了
[解决办法]
转成JPG格式储存。

现成的过程代码发给你:

Delphi(Pascal) code
Procedure pic_bmptojpg(Const FileName: String;SaveFileName:String='');VarBitmap: TBitmap;JPeg: TJPegImage;BeginBitmap := Nil;JPeg := Nil;Try    Bitmap := TBitmap.Create;    Bitmap.LoadFromFile(FileName);    JPeg := TJPegImage.Create;    JPeg.Assign(Bitmap);    IF Trim(SaveFileName)='' Then      JPeg.SaveToFile(ChangeFileExt(FileName, '.jpg'))    Else      JPeg.SaveToFile(SaveFileName);Finally    FreeAndNil(Bitmap);    FreeAndNil(JPeg);End;End;
[解决办法]
也可以随便在保存成JPG之前,修改分辨率尺寸小一点。

Delphi(Pascal) code
{********************************************描述: 修改bmp文件大小参数介绍Source:要修改的bmp文件位置(包括路径)Dest: 修改后保存的位置。X,Y:   修改后的大小********************************************}procedure TdqcFunction.Image_FitBitmap(const Source,Dest:string;const x,y:integer);varabmp,bbmp:tbitmap;scalex,scaley:real;beginabmp:=tbitmap.Create;bbmp:=tbitmap.Create;try    abmp.LoadFromFile(Source);    scaley:=abmp.Height/y;    scalex:=abmp.Width/x;    bbmp.Width:=round(abmp.Width/scalex);    bbmp.Height:=round(abmp.Height/scaley);    bbmp.PixelFormat:=pfDevice;    SetStretchBltMode(bbmp.Canvas.Handle,COLORONCOLOR);    stretchblt(bbmp.Canvas.Handle,0,0,bbmp.Width,bbmp.Height,abmp.Canvas.Handle,0,0,abmp.Width,abmp.Height,srccopy);    bbmp.SaveToFile(Dest);finally   abmp.Free;   bbmp.Free;end;end; 

热点排行