首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从TImage到Blob的镜像转换导致镜像损坏

从TImage到Blob的镜像转换导致镜像损坏
EN

Stack Overflow用户
提问于 2020-11-11 16:55:06
回答 1查看 206关注 0票数 0

我目前遇到了一个问题,我将显示在TImage组件中的图像进行转换,并将其存储在BLOB字段中。现在我知道这不是一个优化的解决方案,但就我的目的而言,这是很好的。不会存储大量的图像。

图像被保存到MySQL数据库的Blob字段中。当我想要在TImage组件中再次显示图像时,问题就来了,它只显示了图像的一半,bottem部分在某种程度上被破坏了。

下面是插入到数据库中的代码:

代码语言:javascript
复制
image1.Picture.LoadFromFile(fileName);
if image1.Picture.Graphic <> nil then
begin
  Field := TBlobField(database.qDBImages.FieldByName('image_one'));
  stream_one := database.qDBImages.CreateBlobStream(Field, bmWrite);
  try
    image1.Picture.Graphic.SaveToStream(stream_one);
    ShowMessage('we are saving to stream');
  finally
    database.qDBImages.Post;
    stream.Free;
  end;

现在,当我必须将值显示回TImage中时,问题就来了,然后它就被破坏了。以下是显示图像的代码:

代码语言:javascript
复制
var
  Field : TBlobField;
  Stream : TStream;
  Jpg : TJPEGImage;
begin
  database.qDBImages.Active := true;

  if database.qDBImages.Active then
  begin
    Field := TBlobField(database.qDBImages.FieldByName('image_one'));
    Stream := database.qDBImages.CreateBlobStream(Field, bmRead);
    Jpg := TJPEGImage.Create;
    try
      Jpg.LoadFromStream(Stream);
      Image1.Picture.Graphic := Jpg;
    finally
      Jpg.Free;
      Stream.Free;
    end;
  end;

有没有其他方法可以将图像转换为blob字段,并且在检索时不会损坏?

我确实在某处读到,这可能与斑点的长度有关,但我不确定。

有什么方法可以改善这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 21:49:41

因此,解决方案取自Oliver on top的建议。我刚刚将blob字段更改为mediumblob字段,将最大大小从64KB增加到16MB。所以多亏了Olivier

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64783253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档