Image.cs 843 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace Urho.Resources
  4. {
  5. partial class Image
  6. {
  7. [DllImport(Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  8. static extern IntPtr Image_GetDataBytes(IntPtr handle, out int len);
  9. public byte[] DataBytes
  10. {
  11. get
  12. {
  13. int len;
  14. IntPtr ptr = Image_GetDataBytes(Handle, out len);
  15. byte[] data = new byte[len];
  16. Marshal.Copy(ptr, data, 0, data.Length);
  17. return data;
  18. }
  19. }
  20. [DllImport(Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)]
  21. static extern IntPtr Image_SavePNG2(IntPtr handle, out int len);
  22. public byte[] SavePNG()
  23. {
  24. int len;
  25. var ptr = Image_SavePNG2(Handle, out len);
  26. byte[] data = new byte[len];
  27. Marshal.Copy(ptr, data, 0, data.Length);
  28. UrhoObject.FreeBuffer(ptr);
  29. return data;
  30. }
  31. }
  32. }