我的程序中的图片字段怎么不能保存JPG格式的图片??高手请进,立即给分! 初学delphi6.0我使用delphi本身的组件Image编辑图片字段,保存BMP格式的图片没问题,但选择了JPG格式的文件就保存不了,显示不出来,请你支招......在线等......最好能给出例子. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Image1.Picture.Graphic.SaveToFile('c:\1.jpg'); Image1.Picture.Graphic.SaveToFile('c:\1.jpg');===============楼上的已经说得够清楚了 Image1.Picture.Graphic.SaveToFile('c:\1.jpg');就是这样了你写一下! procedure TForm1.Button1Click(Sender: TObject);var sourcedc,destdc:hdc;bhandle:hwnd; bitmap:Tbitmap;jpg:Tjpegimage; stream:Tmemorystream;beginsourcedc:=createdc('display','','',nil);destdc:=createcompatibleDC(sourcedc);BHandle:=CreateCompatibleBitmap(sourceDC,Screen.Width,Screen.Height);SelectObject(DestDC,BHandle); BitBlt(DestDC,0,0,Screen.Width,Screen.Height,SourceDC,0,0,SRCCOPY);Bitmap:=TBitmap.Create;jpg:=Tjpegimage.create;stream:=Tmemorystream.Create;bitmap.Handle:=BHandle;bitmap.SaveToStream(stream);jpg.Assign(bitmap);jpg.SaveToFile('D:\新建文件夹1\text\FullScreen.jpg');bitmap.SaveToFile('D:\新建文件夹1\text\FullScreen.bmp');DeleteDC(DestDC) ;ReleaseDC(BHandle,SourceDC);end; procedure DBToImage(Field: TField;const Path : string);var ADOData : TADOBlobStream; JPGImg : TJPEGImage;begin ImagePhoto.Picture.Bitmap := nil; if not Field.IsNull then begin ADOData := TADOBlobStream.Create(TBlobField(Field),bmRead); JPGImg := TJPEGImage.Create; try JPGImg.LoadFromStream(ADOData); JPGImg.SaveToFile(Path); //后缀为.jpg finally ADOData.Free; JPGImg.Free; end; end;end;没有测试,但应该是可以的! 如果你还嫌麻烦的话,去Delphi园地下一个ImageEn组件,就可一个很方便的解决你的问题了。 to:Cutepat(阳关微笑): 请问:ImageEh组件如何在delphi60中安装呢? 在按了“保存”按钮之后所触发的事件处理程序:procedure TForm1.Button1Click(Sender: TObject);var MyJPEG : TJPEGImage;MS: TMemoryStream;beginMyJPEG := TJPEGImage.Create; try with MyJPEG do begin Assign(Image.Picture.Graphic); MS:=TMemoryStream.create; SaveToStream(MS); MS.Position:=0; Table1.Edit; TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS); Table1.Post; messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok); end; finally MyJPEG.Free; end;end;下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:procedure TForm1.Button1Click(Sender: TObject);var tempstream:TStringStream; tempjpeg:TJPEGImage; begin try tempstream:=TStringStream.Create(' '); TBlobField(Query1.FieldByName('Image')).SaveToStream(tempstream); tempstream.Position:=0; tempjpeg:=TJPEGImage.Create; tempjpeg.LoadFromStream(tempstream); DBImage1.Picture.Bitmap.Assign(tempjpeg); finally tempstream.Free; tempjpeg.Free; end;end; http://soft.kaer.cn:8018/FileDown.aspx?FID=168 如何传递参数 delphi8问题 下面的语句有问题吗? 100分求一个思路~~~~ 简单的字符串操作问题,谁第一个回答对了全部给谁 ADOConnection如何连接VF数据库 求指针的用法? 如何制作安装盘(300分)? 有用过xlswrite的朋友吗?请介绍一下它的用法,或提供帮助文档好吗?谢谢 delphi有没有四舍五入的函数,如果没有,应该怎样处理四舍五入 高手快进来!急急急!(分不够再加) 求助,ado控件问题?
===============
楼上的已经说得够清楚了
就是这样了
你写一下!
var sourcedc,destdc:hdc;bhandle:hwnd;
bitmap:Tbitmap;jpg:Tjpegimage; stream:Tmemorystream;
begin
sourcedc:=createdc('display','','',nil);
destdc:=createcompatibleDC(sourcedc);
BHandle:=CreateCompatibleBitmap(sourceDC,Screen.Width,Screen.Height);
SelectObject(DestDC,BHandle);
BitBlt(DestDC,0,0,Screen.Width,Screen.Height,SourceDC,0,0,SRCCOPY);
Bitmap:=TBitmap.Create;
jpg:=Tjpegimage.create;
stream:=Tmemorystream.Create;
bitmap.Handle:=BHandle;
bitmap.SaveToStream(stream);
jpg.Assign(bitmap);
jpg.SaveToFile('D:\新建文件夹1\text\FullScreen.jpg');
bitmap.SaveToFile('D:\新建文件夹1\text\FullScreen.bmp');
DeleteDC(DestDC) ;
ReleaseDC(BHandle,SourceDC);
end;
var
ADOData : TADOBlobStream;
JPGImg : TJPEGImage;
begin
ImagePhoto.Picture.Bitmap := nil; if not Field.IsNull then
begin
ADOData := TADOBlobStream.Create(TBlobField(Field),bmRead); JPGImg := TJPEGImage.Create;
try
JPGImg.LoadFromStream(ADOData);
JPGImg.SaveToFile(Path); //后缀为.jpg
finally
ADOData.Free;
JPGImg.Free;
end; end;
end;
没有测试,但应该是可以的!
请问:ImageEh组件如何在delphi60中安装呢?
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(Image.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
Table1.Edit;
TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS);
Table1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;
下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:
procedure TForm1.Button1Click(Sender: TObject);
var tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create(' ');
TBlobField(Query1.FieldByName('Image')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;