Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Imaging/libImaging/Access.c
diff options
context:
space:
mode:
Diffstat (limited to 'Imaging/libImaging/Access.c')
-rw-r--r--Imaging/libImaging/Access.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/Imaging/libImaging/Access.c b/Imaging/libImaging/Access.c
new file mode 100644
index 0000000..6b2fcbd
--- /dev/null
+++ b/Imaging/libImaging/Access.c
@@ -0,0 +1,63 @@
+/*
+ * The Python Imaging Library
+ * $Id: Access.c 2134 2004-10-06 08:55:20Z fredrik $
+ *
+ * imaging access objects
+ *
+ * an access object can convert image data on the fly
+ *
+ * history:
+ * 98-12-29 fl Created
+ *
+ * Copyright (c) Secret Labs AB 1998.
+ *
+ * See the README file for information on usage and redistribution.
+ */
+
+
+#include "Imaging.h"
+
+
+static void
+access_destroy(ImagingAccess access)
+{
+ /* nop */
+}
+
+static int
+access_getline(ImagingAccess access, char* buffer, int y)
+{
+ memcpy(buffer, access->im->image[y], access->im->linesize);
+ return 1;
+}
+
+ImagingAccess
+ImagingAccessNew(Imaging im)
+{
+ /* Create a standard access object */
+
+ ImagingAccess access;
+
+ access = calloc(1, sizeof(struct ImagingAccessInstance));
+ if (!access)
+ return (ImagingAccess) ImagingError_MemoryError();
+
+ access->im = im;
+
+ access->getline = access_getline;
+ access->destroy = access_destroy;
+
+ return access;
+}
+
+void
+ImagingAccessDelete(ImagingAccess access)
+{
+ if (!access)
+ return;
+
+ if (access->destroy)
+ access->destroy(access);
+
+ free(access);
+}