如何用Delphi将数据库里的jpg图片转换成bmp

heiqixingyi 2010-06-04 10:17:19
做报表,想有QRDBImage,数据库存的是jpg格式的,还有ADOTable,想将数据库里的图片转换成bmp格式显示到QRDBImage中~
...全文
258 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
plutu 2010-06-17
  • 打赏
  • 举报
回复
同意楼上的
lovelymelon 2010-06-07
  • 打赏
  • 举报
回复

//从数据库中读取图片并显示到image中
procedure TForm1.Button1Click(Sender: TObject);
var
ms:TStream;
begin
ms:=TMemoryStream.Create;
self.ADOQuery1.Close;
self.ADOQuery1.Connection:=self.ADOConnection1;
self.ADOQuery1.SQL.Clear;
Self.ADOQuery1.SQL.Add('select * from pic');
self.ADOQuery1.Open;
self.ADOQuery1.First;
ms:=Self.ADOQuery1.CreateBlobStream(Self.ADOQuery1.FieldByName('pic'),bmread);
self.Image1.Picture.Bitmap.LoadFromStream(ms);
ms.Free;
end;
//将image中图片写入数据库
procedure TForm1.Button2Click(Sender: TObject);
var
ms:TMemoryStream;
begin
ms:=TMemoryStream.Create;
Self.Image1.Picture.Bitmap.SaveToStream(ms);
ms.Position:=0;
self.ADOQuery1.Close;
self.ADOQuery1.Connection:=self.ADOConnection1;
self.ADOQuery1.SQL.Clear;
Self.ADOQuery1.SQL.Add('select * from pic');
self.ADOQuery1.Open;
self.ADOQuery1.Append;
TBlobField(Self.ADOQuery1.FieldByName('pic')).LoadFromStream(ms);
self.ADOQuery1.Post;
end;
//IMage中显示jpg或bmp图片
procedure TForm1.BitBtn1Click(Sender: TObject);
var
bm:TBitmap;
jpg:TJPEGImage;
ms:TMemoryStream;
s,s1:string;
begin
if self.OpenDialog1.Execute then
begin
s:=self.OpenDialog1.FileName;
s1:=ExtractFileExt(s);
if s1='.bmp' then
self.Image1.Picture.Bitmap.LoadFromFile(s)
else
begin
jpg:=TJPEGImage.Create;
jpg.LoadFromFile(s);
bm:=TBitmap.Create;
bm.Assign(jpg);
self.Image1.Picture.Bitmap:=bm;
jpg.Free;
bm.Free;
end
end;
end;
将Image中图片保存成jpg图片
procedure TForm1.Button3Click(Sender: TObject);
begin
Self.Image1.Picture.SaveToFile('f:\lzx.jpg');
end;

heiqixingyi 2010-06-06
  • 打赏
  • 举报
回复
我界面上有Image
有三个label标签
分别写着:上传,保存,另存
我想做的效果是:点击上传时有照片出来,要无论是jpg,还是bmp都可以上传
然后:保存:点击保存将上传的照片直接存到数据库中!要求上传时jpg图片是要转换成bmp,是bmp是就原样保存到数据库!数据库中已定义好image类型的字段为(照片)
最后是另存:将数据库中的照片取出来以图片jpg保存!
lovelymelon 2010-06-05
  • 打赏
  • 举报
回复

procedure TForm1.BitBtn1Click(Sender: TObject);
var
bm:TBitmap;
jpg:TJPEGImage;
ms:TMemoryStream;
var
s:string;
begin
if self.OpenDialog1.Execute then
begin
s:=self.OpenDialog1.FileName;
jpg:=TJPEGImage.Create;
jpg.LoadFromFile(s);
bm:=TBitmap.Create;
bm.Assign(jpg);
self.Image1.Picture.Bitmap:=bm;
jpg.Free;
bm.Free;
end;
end;

JPEXE 2010-06-04
  • 打赏
  • 举报
回复
uses Graphic, Jpeg;

{----|
名称: JPG2BMP
功能: 将图片从 JPG 格式转换为 BMP 格式
参数: JPGFile: string - JPG 图片文件
BMPFile: string - BMP 图片文件
返回: Boolean - 成功返回 True, 失败返回 False.
-----}
function JPG2BMP(const JPGFile, BMPFile: string): Boolean;
var
BMP: TBitmap;
JPG: TJpegImage;
begin
Result := False;

if not FileExists(JPGFile) then Exit;

BMP := nil;
JPG := nil;

try
try
JPG := TJpegImage.Create;
JPG.LoadFromFile(JPGFile);

BMP := TBitmap.Create;
BMP.Assign(JPG);
BMP.SaveToFile(BMPFile);
except
Exit;
end;
finally
if Assigned(BMP) then BMP.Free;
if Assigned(JPG) then JPG.Free;
end;

Result := True;
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧