zoukankan      html  css  js  c++  java
  • 数据库图片存取(New)

    procedure TForm1.Button1Click(Sender: TObject);
    var
      ms : TMemoryStream;
      jpeg1 : TJPEGImage;
    begin
      //将数据库字段的内容读取到流中
      ms := TMemoryStream.Create;
      TBlobField(qrM.FieldByName('IMAGE')).SaveToStream(ms);
      //从流中加载图片
      jpeg1 := TJPEGImage.Create;
      ms.Position := 0;
      jpeg1.LoadFromStream(ms);
      FreeAndNil(ms);
      //将图片赋给控件(控件会自动显示)
      Image1.Picture.Assign(jpeg1);
      FreeAndNil(jpeg1);
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    var
      bmp: TBitmap;
      jpeg1 : TJPEGImage;
      ms : TMemoryStream;
    begin
      if OpenPictureDialog1.Execute then
      begin
        //从文件加载图片
        jpeg1 := TJPEGImage.Create;
        jpeg1.LoadFromFile(OpenPictureDialog1.FileName);
    
        //将图片缩放
        bmp := TBitmap.Create;
        bmp.Width := jpeg1.Width div 2;
        bmp.Height := jpeg1.Height div 2;
        bmp.Canvas.StretchDraw(Rect(0, 0, bmp.Width, bmp.Height), jpeg1);
    
        //将绽放后的图片替换原图片
        jpeg1.Assign(bmp);
        FreeAndNil(bmp);
    
        //将图片存入流中
        ms := TMemoryStream.Create;
        jpeg1.SaveToStream(ms);
        FreeAndNil(jpeg1);
    
        //将流存入数据库字段中
        qrM.Edit;
        ms.Position := 0;
        qrMIMAGE.LoadFromStream(ms);
        qrM.Post;
        FreeAndNil(ms);
      end;
    end;
    

    需要注意的时,在对流进行操作时,要将它的Position设置为0

  • 相关阅读:
    不舍
    java 笔记
    Javascript 行为委托
    JavaScript 函数调用的 this词法
    Javascript 闭包
    Javascript 原型链
    理解css的BFC
    多模态检索之CCA算法
    MySQL 基础概念、基础配置、密码破解
    Python的进程和线程
  • 原文地址:https://www.cnblogs.com/CipherLab/p/12356499.html
Copyright © 2011-2022 走看看