为了节省数据库空间,如何限制图片存入数据库(其中包括图片的大小、高度和宽度)?
请教如何将我如下的代码修改为控制
图片文件不超过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




