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

  • 相关阅读:
    共用体
    建立动态链表
    动态分配储存与链表
    结构指针变量作函数参数
    R语言实战 第7章
    R-6 线性回归模型流程
    R-5 相关分析-卡方分析
    R-4 方差分析
    R-3 t分布--t置信区间--t检验
    R-2
  • 原文地址:https://www.cnblogs.com/CipherLab/p/12356499.html
Copyright © 2011-2022 走看看