CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

为了节省数据库空间,如何限制图片存入数据库(其中包括图片的大小、高度和宽度)?

楼主vigovigo(xx)2006-03-14 13:34:29 在 Delphi / 数据库相关 提问

请教如何将我如下的代码修改为控制  
   
  图片文件不超过20K,   高   ×   宽   为   140   ×   100   像素。  
   
  procedure   TForm3.SpeedButton11Click(Sender:   TObject);  
  begin  
      if   openpicturedialog1.Execute   then  
          begin  
          dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName);  
          dbimage1.CopyToClipboard;  
          dbimage1.PasteFromClipboard;  
          end;  
   
  谢谢,…… 问题点数:20、回复次数:9Top

1 楼gdxcj(自由人)回复于 2006-03-14 14:38:46 得分 0

这个问题问得好,但我不会,帮你顶啦,  
  关注中……Top

2 楼fengzsz(班沙克)回复于 2006-03-14 14:48:57 得分 0

在dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName)之前判断文件大小就行了,如果符合条件再dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName)Top

3 楼fengzsz(班沙克)回复于 2006-03-14 14:55:39 得分 20

判断文件大小  
  Delphi自身提供了FileSize函数,例如:    
          var    
            f:   file   of   Byte;    
            size   :   Longint;    
          begin    
            AssignFile(f,   'f:\t.exe');    
            Reset(f);    
            size   :=   FileSize(f);    
            edit1.text   :=   IntToStr(size);    
            CloseFile(f);    
          end;    
             
          也可以使用下面的方法:    
          function   GetFileSize(const   FileName:   String):   LongInt;    
          var   SearchRec:   TSearchRec;    
          begin    
          if   FindFirst(ExpandFileName(FileName),   faAnyFile,   SearchRec)   =   0   then    
            Result   :=   SearchRec.Size    
          else    
            Result   :=   -1;    
          end;    
   
  Top

4 楼teacher1998(英语+asp.net+MsSQL)回复于 2006-03-14 18:12:59 得分 0

记下来Top

5 楼vigovigo(xx)回复于 2006-03-15 08:28:00 得分 0

哥们,我还是不会呀,怎么办呢?Top

6 楼lhxs(红衣人)回复于 2006-03-15 22:01:50 得分 0

同意fengzsz(班沙克)的回答Top

7 楼fengzsz(班沙克)回复于 2006-03-15 22:27:02 得分 0

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      f:   file   of   Byte;  
      size   :   Longint;  
  begin  
      OpenDialog1.Filter:='JPG   File(*.jpg)|*.jpg';  
      if   OpenDialog1.Execute   then  
      begin  
          AssignFile(f,   OpenDialog1.FileName);  
          Reset(f);  
          size   :=   FileSize(f)   div   1024;     //   KB  
          CloseFile(f);  
          if   size   <=   20   then  
          begin  
              dbimage1.Picture.LoadFromFile(openpicturedialog1.FileName);  
              dbimage1.CopyToClipboard;  
              dbimage1.PasteFromClipboard;  
          end  
          else  
              ShowMessage('图片大小不能超过20KB');  
      end;  
  end;  
   
  楼主信誉值有问题,不指望得分了。Top

8 楼fengzsz(班沙克)回复于 2006-03-15 22:29:03 得分 0

把OpenDialog1改成openpicturedialog1Top

9 楼linzeyu7859()回复于 2006-03-16 08:56:27 得分 0

TO:谢春建  
    我觉得方法也有以上老兄们说在这么多了,delphi存取数据库文件是文件流的方式进行的,所以判断图片的高度和宽度是有难度的。  
    给你个建议:可以将图片文件保存在一个目录下,用的时候再调用。数据库存图片缺点太多了,备份也麻烦,最好不要用。Top

相关问题

  • 如何将图片存入数据库?
  • 如何向数据库存入图像??
  • 如何把图存入数据库?
  • 如何将DataSet存入数据库
  • 时间存入SQL数据库问题!
  • 如何将图片存入数据库
  • word存入数据库的问题。sos~~
  • 图片存入数据库的问题!
  • 图片存入数据库的问题!
  • 把图片存入数据库好,还是把图片路径存入数据库中好?

关键词

  • 文件
  • openpicturedialog
  • dbimage
  • 图片
  • 大小
  • opendialog
  • searchrec
  • loadfromfile
  • longint
  • filesize

得分解答快速导航

  • 帖主:vigovigo
  • fengzsz

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo