delphi Fdmemtable 内存表保存图片的例子  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi Fdmemtable 内存表保存图片的例子


Fdmemtable 内存表保存图片的例子

var
  aStream: TMemoryStream;
  LDataSet: TFDDataSet; // 申请一个FD数据集
  MyStream: Tmemorystream;
  MyJPEG: TJpegImage;
  MyPng: TPngImage;
begin
  inherited;
  if img2.Picture.Graphic = nil then
  begin
    Application.MessageBox('没有图片可以增加!!', '提示', MB_OK + MB_ICONWARNING + MB_TOPMOST);

  end
  else
  begin
    aStream := TMemoryStream.Create();
    MyStream := TMemoryStream.Create();
    try
      img2.Picture.SaveToStream(aStream);
      fdmtPicture.Append;
      fdmtPicture.FieldByName('p_picture_id').AsLargeInt := getSnowflake;
      fdmtPicture.FieldByName('p_picture_guid').AsString := GetGUID;
      fdmtPicture.FieldByName('p_products_id').AsLargeInt := aid;
      fdmtPicture.FieldByName('p_picture_name').AsString := EditImageName.Text;
      if img2.Picture.Graphic is TJPEGImage then
      begin
        MyJPEG := TJpegImage.Create;
        MyJPEG.Assign(img2.Picture.Graphic);
        MyJPEG.CompressionQuality := 10;
        MyJPEG.Compress;
        MyJPEG.SaveToStream(MyStream);
      end;
      if img2.Picture.Graphic is TPngImage then
      begin
        MyPng := TPngImage.Create;
        MyPng.Assign(img2.Picture.Graphic);
        MyPng.CompressionLevel := 9;
        MyPng.SaveToStream(MyStream);
      end;
      MyStream.Position := 0;
      TBlobField(fdmtPicture.FieldByName('p_picture_thumbnail')).LoadFromStream(MyStream);
      aStream.Position := 0;
      TBlobField(fdmtPicture.FieldByName('p_picture_image')).LoadFromStream(aStream);
      fdmtPicture.Post;
      img2.Picture.Graphic := nil;
    finally
      MyStream.free;
      aStream.Free;
    end;
  end;

来源 https://www.cnblogs.com/Thenext/p/16422021.html


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.039463996887207 seconds