用VideoCap1控件拍照图压缩问题!

yangzong20 2012-03-30 02:51:12
我用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;
...全文
241 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
faunaq 2012-03-31
  • 打赏
  • 举报
回复
也可以随便在保存成JPG之前,修改分辨率尺寸小一点。


{********************************************
描述: 修改bmp文件大小
参数介绍
Source:要修改的bmp文件位置(包括路径)
Dest: 修改后保存的位置。
X,Y: 修改后的大小
********************************************}
procedure TdqcFunction.Image_FitBitmap(const Source,Dest:string;const x,y:integer);
var
abmp,bbmp:tbitmap;
scalex,scaley:real;
begin
abmp:=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;

faunaq 2012-03-31
  • 打赏
  • 举报
回复
转成JPG格式储存。

现成的过程代码发给你:


Procedure pic_bmptojpg(Const FileName: String;SaveFileName:String='');
Var
Bitmap: TBitmap;
JPeg: TJPegImage;
Begin
Bitmap := 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;

SVIP_ 2012-03-30
  • 打赏
  • 举报
回复
bmp是有点大, 你转一下jpg就好了
babydog01 2012-03-30
  • 打赏
  • 举报
回复
我替你在BAIDU上搜的,应该就是这个,试着改变宽和高(edit1,edit2)看一下文件大小就可以了。
babydog01 2012-03-30
  • 打赏
  • 举报
回复
http://blog.csdn.net/xwchen/article/details/1799037
yangzong20 2012-03-30
  • 打赏
  • 举报
回复
麻烦各位大哥帮帮忙呀,小弟谢谢了

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧