请教各位高手。我要给一幅BMP图加入一些内容(比如说水印),将要对BMP的原始数据进行运算操作。
我现在加水印的函数定义为:
EMBED(var c : array of double)
我想将BMP文件存储在c中,现在我使用的是TMemoryStream
代码如下
var
 M:TMemoryStream
begin
 M := TMemoryStream.Create;
 M.LoadFromFile(OpenDialog.FileName);
end;我想问问,BMP文件现在在M中到底是什么形式(是不是2进制的)?
怎么样才能将M中读入的数据做为参数传递到EMBED中?

解决方案 »

  1.   

    你这样是不行的,应该用TBitmap来调用BMP文件,然后调用ScanLine属性来读取里面的点阵信息。最后使用你的函数来加水印!
      

  2.   

    TMemoryStream读取进来的数据就是BMP文件的二进制数据形式
      

  3.   

    TMemoryStream直接读二进制数据,会把BMP文件的头文件信息也包含进去,比如DCB块文件信息,调色板等。