Logo Search packages:      
Sourcecode: f-spot version File versions  Download package

JpegUtils.cs

using System.Runtime.InteropServices;
using System;
using Gdk;

public class JpegUtils {
      [DllImport ("libfspot")]
      static extern IntPtr f_load_scaled_jpeg (string path,
                                     int target_width,
                                     int target_height,
                                     out int original_width_return,
                                     out int original_height_return);

      /* FIXME */
      [DllImport("libgobject-2.0-0.dll")]
      static extern void g_object_unref (IntPtr raw);

      public static Pixbuf LoadScaled (string path, int target_width, int target_height,
                               out int original_width, out int original_height)
      {
            Pixbuf pixbuf = new Pixbuf (f_load_scaled_jpeg (path, target_width, target_height,
                                                out original_width, out original_height));
            g_object_unref (pixbuf.Handle);
            return pixbuf;
      }

      public static Pixbuf LoadScaled (string path, int target_width, int target_height)
      {
            int unused;
            return LoadScaled (path, target_width, target_height, out unused, out unused);
      }

      [DllImport ("libfspot")]
      static extern void f_save_jpeg_exif (string path, HandleRef data);

      public static void SaveExif (string path, Exif.ExifData data)
      {
            f_save_jpeg_exif (path, data.Handle);
      }           

      [DllImport ("libfspot")]
      static extern void f_get_jpeg_size (string path, out int width_return, out int height_return);

      public static void GetSize (string path, out int width_return, out int height_return)
      {
            f_get_jpeg_size (path, out width_return, out height_return);
      }

      public enum TransformType {
            Rotate90,
            Rotate180,
            Rotate270,
            FlipH,
            FlipV
      };

      [DllImport ("libfspot")]
      static extern bool f_transform_jpeg (string source_path, string destination_path, TransformType transform,
                                   out string error_message_return);

      public static void Transform (string source_path, string destination_path, TransformType transform)
      {
            string error_message;

            if (! f_transform_jpeg (source_path, destination_path, transform, out error_message))
                  throw new Exception (error_message);
      }
}

Generated by  Doxygen 1.6.0   Back to index