bmp格式的图片没出什么问题但是jpg格式的文件就不行 uses jpeg了还不行
请高手指点下
请高手指点下
解决方案 »
- 程序界面问题
- 一个奇怪的问题!关于dxDBTreeView。
- StringGrid1: TAdvStringGridPRO; 这个控件如何分页显示数据?
- 人生规化:Delphi程序员,过两年想转成其他语言,同时想转到其他好的公司
- 好东西
- 20分求助!请问关于edit的问题!
- 求:DELPHI 二维动态数组的用法!
- 高分在线求助:如何仿winamp定做磁性窗口
- 在adoconnection中设置connectionstring访问access数据库,出现密码无效提示,内详!
- sql的触发器(分少,可就有这么多了)
- 能不能将一个文件以流的形式存入到MSSQL中?
- 我想做一个远程的c/s结构的系统,能提供一个方案吗?[悬赏100分]
procedure TForm1.Button1Click(Sender: TObject); //插入圖片過程
var
testStream:TMemoryStream;
begin
try
testStream := TMemoryStream.Create; //創建內存流
Image1.Picture.Graphic.SaveToStream(testStream); //將圖片保存至內存流中
adoquery1.Close;
adoquery1.SQL.Clear;
adoQuery1.SQL.Add('Insert into test (id,photo) values (:id,:photo)'); //進行插入操作
adoquery1.Parameters.ParamByName('id').Value := '003';
adoQuery1.Parameters.ParamByName('photo').LoadFromStream(testStream,ftBlob); //讀取保存的內存圖
adoquery1.ExecSQL;
finally
testStream.Free; //釋放內存流
end;
end;
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
begin
if not ADOQuery1.FieldByName('photo').IsNull then begin ;
mStream:=TMemoryStream.Create ;
JpgFile:=TjpegImage.Create ;
TBlobField(ADOQuery1.FieldByName('photo')).SaveToStream(mStream); //顯示的轉換為BlobFiled並保存至內存流
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
image2.Picture.Assign(JpgFile);
end
else begin
image2.Picture :=nil;
end;
end;
procedure TForm_xgdl.Button2Click(Sender: TObject);
var
bmp1:TBitmap;
jpg1:TJpegImage;
begin
with od do
begin
filter:='*.jpg,*.bmp';
if od.Execute then
begin
bmp1:=Tbitmap.Create;
jpg1:=Tjpegimage.Create;
try
jpg1.LoadFromFile(od.FileName);
bmp1.Assign(jpg1);
adoquery1.Edit;
adoquery1.FieldByName('zp').Assign(bmp1);//存图片
adoquery1.FieldByName('zpid').AsString:=dbedit1.Text;//图片的名字
adoquery1.Post;
finally
jpg1.Free;
bmp1.Free;
end; dbedit1.Text:=od.FileName;//图片的名字
end;
end;
end;
存到数据库好象可以,不过还是取不出来,不能显示到IMAGE2 procedure TForm1.Button2Click(Sender: TObject); //讀取圖片過程
………
if not ADOQuery1.FieldByName('photo').IsNull then begin ; 这个什么意思?
……
我把这个读取图片这段代码粘贴上去好象显示不出来,报错了
是不是ADOQUERY1还要写写SQL 语句?
高手指点一下
ADOQuery1.SQL.Text:='SELECT * FROM test'; // 查询图片
ADOQuery1.Open;接着
if not ADOQuery1.FieldByName('photo').IsNull then begin ; 这个什么意思?
////保存图片//////
var
MS_JpegStream:TMemoryStream;
M_BitMap:TBitMap;
M_Jpeg:TJpegImage;
begin
..........
if OpenPictureDialog1_checked then
begin
try
MS_JpegStream:=TMemoryStream.Create;
M_BitMap:=TBitMap.Create;
M_Jpeg:=TJpegImage.Create;
if DBImage1.picture.graphic is Tbitmap then
begin
M_BitMap.LoadFromFile(OpenPictureDialog1.FileName);
M_Jpeg.Compress;
M_Jpeg.Assign(M_BitMap);
end
else if DBImage1.picture.graphic is Tjpegimage then
begin
M_Jpeg.LoadFromFile(OpenPictureDialog1.FileName);
end;
M_Jpeg.SaveToStream(MS_JpegStream);
with SQLQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='insert into zjzp(zjbh,zp) values(:zjbh,:zp)' ;
ParamByName('zjbh').AsString:=trim(Edit10.Text); //zjbh
ParamByName('zp').LoadFromStream(MS_JpegStream,ftblob); //zp
ExecSQL(False);
end
finally
MS_JpegStream.Free;
M_BitMap.Free;
M_Jpeg.Free;
end;
end; //if OpenPictureDialog1_checked then
var
MS_JpegStream:TMemoryStream;
begin
..........
SQLQuery1.Active:=false;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Text:='select * from zjzp where zjbh=:zjbh' ;
SQLQuery1.ParamByName('zjbh').AsString:=trim(Edit11.Text); //zjbh
SQLQuery1.Active:=True;
SQLQuery1.First;
if not SQLQuery1.Eof then
begin if SQLQuery1.FieldByName('zp').IsNull then
begin
DBImage1.Picture.Bitmap.Assign(nil);
end
else
begin
try
MS_JpegStream:=TMemoryStream.Create;
(SQLQuery1.FieldByName('zp') as tblobfield).savetostream(MS_JpegStream);
DBImage1.Picture.Graphic:=nil;
DBImage1.Picture.Graphic:=TJpegImage.Create;
MS_JpegStream.Position:=0;
DBImage1.Picture.Graphic.LoadFromStream(MS_JpegStream);
finally
MS_JpegStream.Free;
end;
end; end
else
DBImage1.Picture.Bitmap.Assign(nil);
SQLQuery1.Active:=false;
如哪位高手能不吝赐教,将万分感激!