DBImage 使用 Jpeg 图片(VCL)
来源:互联网 发布:富豪 面相 知乎 编辑:程序博客网 时间:2024/05/24 07:04
Delphi 的 DBImage 只支持 BMP 格式的图片。如果在数据库的 Blob 字段里面存储 BMP 图片,则 DBImage 可以自动显示图片。如果在 Blob 字段里面存储 Jpg 图片,则打开数据库的时候,如果绑定了一个 DBImage 到该字段,会报异常。
要让 DBImage 支持 JPEG,其核心是:TWICImage.
TWICImage 是 Delphi 10 以来新增加的一个类,在 Vcl.Graphics; 单元里面。这个类支持各种图片格式,包括 gif, png, jpg 等等。
Danny Wind 有两篇文章和一个 Demo 代码演示了如何使用 TWICImage 来达到让 Image 显示 JPG 图片的效果:
文章一
文章二
---------------
核心代码:
{Display info from image inside Blob}procedure TFormMain.DisplayPictureInfo(Field: TBlobField);var lWICImage: TWICImage;begin MemoMain.Lines.Add('======================'); if (Field.BlobSize > 0) then begin {Assume image} lWICImage := TWICImage.Create; try lWICImage.Assign(Field); MemoMain.Lines.Add('Picture inside BlobField:'); MemoMain.Lines.Add('Size = ' + Field.BlobSize.ToString + ' bytes'); MemoMain.Lines.Add('Format = ' + GetEnumName(TypeInfo(TWICImageFormat),Integer(lWICImage.ImageFormat))); finally lWICImage.Free; end; end else {Empty} begin MemoMain.Lines.Add('No picture, Blob is Empty'); MemoMain.Lines.Add('Click on image to add a picture.'); end;end;
{TWICImage can determine image type from the header that was saved into the Blob. Note: TWICImage requires WIndows-XP SP3 and Delphi-2010.}procedure TFormMain.LoadPictureFromField(Field: TBlobField; Picture: TPicture);var lWICImage: TWICImage;begin if (Field.BlobSize > 0) then begin {Assume image} lWICImage := TWICImage.Create; try lWICImage.Assign(Field); Picture.Assign(lWICImage); finally lWICImage.Free; end; end else {Empty} begin Picture.Assign(nil); end;end;
上述函数的 Picture 来自一个 Image。因此就可以在一个 TImage 里面显示来自数据库字段的图片了。要让它自动显示,在 DataSource.OnDataChange 事件里面调用这个方法。
0 0
- DBImage 使用 Jpeg 图片(VCL)
- 使用libjpeg解码jpeg图片
- 使用libjpeg解码jpeg图片
- 使用libjpeg库实现jpeg图片的缩放(缩略图)
- 使用libjpeg库实现jpeg图片的缩放(缩略图)
- FW:使用libjpeg解码jpeg图片
- FW:使用libjpeg解码jpeg图片
- FW:使用libjpeg解码jpeg图片
- 使用OpenExif修改jpeg图片信息
- Android使用JPEG实现图片压缩上传
- Video4linux(v4l)摄像头采集jpeg图片
- Video4linux(v4l)摄像头采集jpeg图片
- java复制图片EXIF信息(支持jpeg格式),使用了MediaUtils
- 使用OpenCV实现WebCam摄像头保存JPEG图片(改良3版)
- 使用OpenCV实现WebCam摄像头保存JPEG图片(改良2版)
- 使用OpenCV实现WebCam摄像头保存JPEG图片(改良1版)
- 使用OpenCV实现WebCam摄像头保存JPEG图片(改良3版) Ubuntu
- libjpeg库的简单使用使用----jpeg图片解压
- 模拟 ES5 的数组方法
- 我目前对并发的理解
- Dagger2简介
- Git 分支
- [leetcode: Python]205. Isomorphic Strings
- DBImage 使用 Jpeg 图片(VCL)
- so.walk()简单实现,
- 依靠自学,争取帮助
- Codeforces 431C k-Tree 题解
- Codeigniter整合媒体解析类getid3
- IOS KVC 32位和64位的坑
- Linux之——bash: warning: setlocale: LC_CTYPE: cannot change locale (EN_US.UTF-8)
- hdoj 2037 今年暑假不AC
- java 连接 Mysql 的连接信息