我用的是dbimage控件,,想存放jpg格式的图片。。怎么弄,
网上有代码 但是看不懂,,不好衔接。。我是做人事管理模块,想存放员工照片。
网上有代码 但是看不懂,,不好衔接。。我是做人事管理模块,想存放员工照片。
解决方案 »
- Delphi下一版本,代号TIBURON
- 关于sql的 case 语句
- Access 是不是不支持一次删除多行数据呀
- delphi中函数添加的方法
- 窗口大小
- 怎样由(RGB)三原色格式中提取(ESL) 色调<色相>,饱和度,亮度数据
- 如果你在大街上捡到钱会怎么办?散分!不是散钱呀!
- 在DBGRID能否增加一列来统计没个同学的语文、数学、英语成绩?
- 如何合并Excel单元格(急)
- delphi连接access问题:MSDASQL.1【...ODBC driver】和Microsoft.Jet.OLEDB.4.0【...Jet 4.0 OLE DB】
- 如何用DELPHI对接两个同样大小的JPEG图片?
- 初学者求助,文本框内字符颜色的问题
use Jpeg//----------------------向数据库加入图片--------------------
procedure TForm1.suiButton1Click(Sender: TObject);
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
begin
//-----------向数据库添加图片
adoquery1.Append;
mstream:=TMemoryStream.Create;
JpgFile:=TjpegImage.Create ;
if OpenDialog.Execute then
begin
try
mstream.LoadFromFile(OpenDialog.FileName);
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
adoQuery1.FieldByName('xp').Assign(JpgFile);
adoquery1.Post;
finally
mstream.Free;
end;
end;
end;//--------------------------------显示图片----------------------------------
procedure TForm1.suiButton2Click(Sender: TObject);
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
begin
//显示图片
if not ADOQuery1.FieldByName('xp').IsNull then begin ;
mStream:=TMemoryStream.Create ;
JpgFile:=TjpegImage.Create ;
TBlobField(ADOQuery1.FieldByName('xp')).SaveToStream(mStream);
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
DBImage1.Picture.Assign(JpgFile);
end
else begin
//image2.Picture :=nil;
end;
end;
DBImage1.Picture.Assign(JpgFile);
[Error] uSR072125.pas(506): Undeclared identifier: 'TjpegImage'
定义的时候就有错。。
//----------------------向数据库加入图片--------------------
procedure TForm1.suiButton1Click(Sender: TObject);
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
MyBmp: TBitmap;
begin
//-----------向数据库添加图片
adoquery1.Append;
mstream:=TMemoryStream.Create;
JpgFile:=TjpegImage.Create ;
MyBmp:=TBitmap.Create;
if OpenDialog.Execute then
begin
try
mstream.LoadFromFile(OpenDialog.FileName);
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
adoQuery1.FieldByName('xp').Assign(JpgFile);
MyBmp.Assign(jpgfile);
DBImage1.Picture.Bitmap.Assign(mybmp);{显示图片}
adoquery1.Post;{这句改到另一按钮中去,例如那个按钮是保存资料用的}
finally
mstream.Free;
end;
end;
end;
另:DBImage1的Stretch属性设为TRUE,这样才可以在DBImage1看到全图,基本是这样操作的了
也就是说已经有此人的其他文本信息了。。用这个代码也可以吧,,adoquery1.Append;这个就不用了吧?
已经是修改状态了。。
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
MyBmp: TBitmap;
begin
if cds_Main.ReadOnly then exit;
mstream:=TMemoryStream.Create;
JpgFile:=TjpegImage.Create ;
MyBmp:=TBitmap.Create;
if OpenDialog1.Execute then
begin
try
mstream.LoadFromFile(OpenDialog1.FileName);
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
cds_main.FieldByName('photo').Assign(JpgFile);
MyBmp.Assign(jpgfile);
DBImage1.Picture.Bitmap.Assign(mybmp);
cds_main.Post;
finally
mstream.Free;
end;
end;end;
begin
if cds_Main.ReadOnly then exit;
if opendialog1.Execute then
begin
try
if not (cds_Main.state=dsInsert) or not (cds_Main.state=dsEdit) then cds_Main.edit;
cds_MainPhoto.LoadFromFile(opendialog1.FileName)
except
dbimage1.picture:=nil;
end;
end;
end;
但是因为dbimage控件好像只能存放位图
procedure TForm2125.but_ReadPicClick(Sender: TObject);
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
MyBmp: TBitmap;
begin
if cds_Main.ReadOnly then exit;
mstream:=TMemoryStream.Create;
JpgFile:=TjpegImage.Create ;
MyBmp:=TBitmap.Create;
if OpenDialog1.Execute then
begin
try
mstream.LoadFromFile(OpenDialog1.FileName);
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
cds_main.FieldByName('photo').Assign(JpgFile);
MyBmp.Assign(jpgfile);
MyBmp.Position :=0;{加了这句}
DBImage1.Picture.Bitmap.Assign(mybmp);
cds_main.Post;
finally
mstream.Free;
end;
end; end;
[Fatal Error] sr072125.dpk(50): Could not compile used unit 'uSR072125.pas'