]> git.imager.perl.org - imager.git/blob - TODO
some ideas
[imager.git] / TODO
1                          *** TODO ***
2
3
4 Iolayer:
5 - Add scalar/mmap to iolayer
6 - Add close() code to iolayer for fakeseek sources.
7 - Merge callback interface into iolayer
8 - Add iolayer reading/writing for gif
9 - and raw
10 - Implment the maxread threshold (Indicates how much can
11   be read from a source before it stops reading from its
12   underlying source.  For making sure only the relevant
13   data is read from a socket for example. 
14
15
16 Enhanched internal structure:
17
18 MultiImage & metadata support:
19 - Figure what interface should be between C and perl?
20 - How to store data in the C interface for tags/metadata?
21   Support tiff's madness, i.e. tags and options.
22 - Error handling, make a general i_errstr object and arrange
23   such that each image has an i_errstr object to hold its
24   local errors?
25 - SEE design/represent.txt for proposed new structure and
26   interface design that takes these factors into account.
27 - define common i_* tags for specifying attribute common among images
28   like spatial resolution (implement for other image types, especially 
29   TIFF)  (Spatial resolution is supported for all types that support 
30   it - are there any other common properties we can add?)
31 - implement the i_incomplete tag for other formats  
32
33 New Features:
34 - Add mng support, pcx and aalib support.
35   - Windows icon files (.ico)
36   - ILBM (Amiga) images
37   - photoshop files (I think I've seen docs)
38   - XBM
39   - FITS
40   - WMF (extract bitmap data on read)
41   - gzip or bzip2 compressed raw
42   - postscript for output
43
44 - Transforms, interpolated multidimensional lookup tables.
45   Usefull for CMYK <-> RGB table lookup.
46
47 - advanced font layout (spacing, kerning, alignment) (Artur?)
48
49 - ways to check if characters are present in a font, eg. checking if
50   ligatures are present
51
52 - font synthesis - synthesize a bold or slanted font from a normal font
53   (or even from an existing bold or slanted font)
54
55 - utf8 support for text output
56   (available for freetype2)
57
58 - image rotation, 3 ways of doing rotation:
59   - rotation by shearing, which produces makes lengths in the image larger,
60     but could be useful
61   (2 of the 3 have been done)
62
63 - read_multi() needs to handle other multi-image types, such as TIFF 
64   (probably the most common)
65
66 - write_multi() to save other multi-image types, especially TIFF
67
68 - compose channels - build a new image based on channels from several
69   images
70
71 - filled polygons
72
73 - arc outlines
74
75 Clean up:
76 - Make sure everything is doable with the OO interface
77   i_flood_fill() for example.
78
79 - Compile with memory debugging enabled and fix all leaks
80
81 - dynaload.c is strongly tied to perl
82
83 - Add mycalloc() memory allocation wrappers.
84
85 - should we overload <=> or cmp for Imager::Color objects?
86   too many worms, leave it out
87
88 - should the interlace option for reading raw images have 
89   symbolic names in the OO interface?
90
91 - improve consistency in the interfaces, both in trying to use named
92   parameters where possible but also in using consistent names, eg.
93   (tx, ty) vs (left, top) in rubthrough() vs paste().  Do we want a (simple)
94   standard for this (suggested names)?  Remember to preserve the old 
95   interface where possible.
96
97 Format specific issues:
98 - provide patches for libgif and libungif that fix their bugs
99   and give a useful extension interface.  Probe for the 
100   installation of the patches in Makefile.PL to let gif.c
101   know what features it can use.
102
103 - Add options for pnm writer to save in any of the p1..P6
104   formats.  Even if the input has 1 channel, write 3 and such
105   cases.  Also allow ascii mode.  Need to be able to write 
106   pbm images which needs ties to the quantization code.
107
108 - save paletted images as paletted where that's supported.  Done
109   for gif/tga/bmp/tiff.  Not done for png yet.
110
111 - read other format paletted images as paletted images.  This has 
112   been done for gif/tga/bmp/tiff formats but not for png.
113
114 - read/write 16-bit/sample images as such for tiff
115
116 - read more metadata from images, esp tiff tags, EXIF format information 
117   from TIFF and JPEG.
118
119 Documentation:
120 - Add to the documentation
121 - Write a tutorial?
122 - sample code and Imager/Samples.pod describing them
123 - Imager/Cookbook.pod
124 - modify the .pm files to put pod describing a function close to the 
125   function
126 - Write a guide to installing the helper libraries
127 - Go through the entire project and add comments in pod
128   so doco.perl can be used to read them.
129 - see the IRC log in design/doclayout.txt