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

  • 相关阅读:
    NOIP模拟测试7
    BigInt类
    bzoj 2733 [HNOI2012]永无乡 并查集+平衡树
    bzoj 2752 [HAOI2012]高速公路(road) 线段树
    bzoj 1584 Cleaning Up 打扫卫生 dp
    201709 半集训
    [SHOI2014]概率充电器 dp
    NOIP2016 天天爱跑步
    [HNOI2011] 数学作业
    [Poi2012]Festival
  • 原文地址:https://www.cnblogs.com/CipherLab/p/12356499.html
Copyright © 2011-2022 走看看