Invert函数如下: function TForm1.Invert (pImage: pointer; size: Integer): pointer; var pData, pMem: PChar; i: Integer; begin pMem:=AllocMem(size); CopyMemory(pMem,pImage,size); pData:=pMem+54; for i:=0 to size-54-1 do begin pData^:=Char(not integer(pData^)); pData:=pData+1; end; Result:=pMem; end;
---- 1. btnSave的Click事件,这里演示了TMemoryStream的另一种用法,将Stream中的数据写到数据库中去。 var MS: TMemoryStream; begin MS:=TMemoryStream.create; Image1.Picture.Bitmap.SaveToStream(MS); MS.Position:=0; Table1.Append; file://在数据库中添加一条记录 TBlobField(Table1.FieldbyName (''''image'''')).LoadFromStream(MS); Table1.Post; file://将所作的更新写入数据库 end;
---- 4. DBNavigator1的Click事件,这里演示了TBlobStream的用法,使用了和写入时不同的方法来读出数据库的图象数据。 var MS: TStream; begin with Table1 do MS:=CreateBlobStream (FieldbyName(''''image''''),bmRead); Image1.Picture.Bitmap. LoadFromStream(MS); MS.Free; end;