// MyClass.cs created with MonoDevelop
// User: sam at 13:14 04/10/2008
//
// To change standard headers go to Edit->Preferences->Coding->Standard Headers
//

using System;
using System.Runtime.InteropServices;
using System.Security;

namespace Pipi
{
    public class Picture
    {
        private IntPtr _picture;

        [DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl),
         SuppressUnmanagedCodeSecurity]
        private static extern IntPtr pipi_load(string s);
        public Picture(string s)
        {
            _picture = pipi_load(s);
        }

        [DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl),
         SuppressUnmanagedCodeSecurity]
        private static extern int pipi_free(IntPtr img);
        ~Picture()
        {
            pipi_free(_picture);
        }

        [DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl),
         SuppressUnmanagedCodeSecurity]
        private static extern IntPtr pipi_save(IntPtr p, string s);
        public void Save(string s)
        {
            _picture = pipi_save(_picture, s);
        }

        [DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl),
         SuppressUnmanagedCodeSecurity]
        private static extern int pipi_get_image_width(IntPtr img);
        public int Width
        {
            get { return pipi_get_image_width(_picture); }
        }

        [DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl),
         SuppressUnmanagedCodeSecurity]
        private static extern int pipi_get_image_height(IntPtr img);
        public int Height
        {
            get { return pipi_get_image_height(_picture); }
        }
    }
}