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

  • 相关阅读:
    【BZOJ】4011: [HNOI2015]落忆枫音
    【BZOJ】1187: [HNOI2007]神奇游乐园
    【CERC2007】机器排序
    【NOI2004】郁闷的出纳员
    【USACO】奶牛跑步2
    【HNOI2004】宠物收养所
    【NOI2009】植物大战僵尸
    Xn数列
    骨牌覆盖
    【JSOI2008】球形空间产生器
  • 原文地址:https://www.cnblogs.com/CipherLab/p/12356499.html
Copyright © 2011-2022 走看看