zoukankan      html  css  js  c++  java
  • bmp和Variant的转换

    procedure TForm2.VariantToBMP(aValue : OleVariant;var aBmp:TBitmap); 
    var 
       Stream : TMemoryStream; 
    begin 
    try 
      Stream := TMemoryStream.Create;

      VariantToStream (aValue,Stream); 
      aBmp.LoadfromStream(Stream);

    finally 
       VariantClear(aValue); 
       Stream.free; 
    end; 
    end;

    procedure TForm2.BMPToVariant(aBmp : TBitmap; var aVariant:OleVariant); 
    var 
      Stream        : TMemoryStream; 
    begin 
        try 
           Stream := TMemoryStream.Create;

           Image1.Picture.Bitmap.SaveToStream(Stream);

           StreamToVariant(Stream, aVariant); 
        finally 
           Stream.Free; 
       end; 
    end;

    rocedure TForm2.VariantToStream (const v : olevariant; 
                                      Stream : TMemoryStream); 
    var 
      p : pointer; 
    begin 
      Stream.Position := 0; 
      Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound(v,  1) + 1; 
      p := VarArrayLock (v); 
      Stream.Write (p^, Stream.Size); 
      VarArrayUnlock (v); 
      Stream.Position := 0; 
    end;

    procedure TForm2.StreamToVariant (Stream : TMemoryStream; var v : OleVariant); 
    var 
      p : pointer; 
    begin 
      v := VarArrayCreate ([0, Stream.Size - 1], varByte); 
      p := VarArrayLock (v); 
      Stream.Position := 0; 
      Stream.Read (p^, Stream.Size); 
      VarArrayUnlock (v); 
    end; 

  • 相关阅读:
    实例下载
    js跳转
    navicat怎么导出和导入数据表
    navicate怎么用sql语句插入一条语句
    svn提交时出现很多乱文件怎么解决
    随机显示星星(点击可删除)
    html节点属性操作
    利用节点更改table内容
    TreeView添加treeView1_NodeMouseClick----多么痛的领悟。。。
    IP addresses in C#
  • 原文地址:https://www.cnblogs.com/yzryc/p/6374910.html
Copyright © 2011-2022 走看看