Roadmap for version 2.1.0 Expand all | Collapse all
28% of 42 tasks completed. 36 open tasks:
- FS#35 - Support for setting PNG filter on export Expand Collapse
-
It would be nice if gd exposed an API allowing the caller to control the filter used when writing PNG images. There is a comment in gd_png.c saying this would be done in gdImagePngCtxEx(), but I suppose it was overlooked when that function was added.
For truecolor images, the PNG filter that will deliver the best compression depends largely on the image. For many photographs, the default filter will deliver the best performance, but for other types of images such as artwork without so...
- FS#38 - Complete CMake support Expand Collapse
-
- build
- install
- tests
- tests results submission
- packaging
- FS#39 - Proposed new function gdImageShadedTriangle Expand Collapse
-
I’d like to propose a new function that would allow smoothly shaded (gradient) fill. I’m willing to write the code, though I would be delighted if someone else finds time to write it before I do. I welcome comments or suggestions on the following user interface:
void gdImageShadedTriangle(gdImagePtr im, gdPointPtr vertex, int *color)
vertex[3] holds the x,y coordinates at the three vertices color[3] holds the color value of each vertex
The function would assign interpolated color ...
- FS#42 - GD can't display characters with unicode references over 7 digit Expand Collapse
-
GD doesn’t appear to be able to display characters with unicode references over 7 digits.
6 digit references (or 5 digits in hex) display correctly, but 7 digits references (or 6 digits in hex) simply show the literal string: <code> $image→stringFT(0x0000ff, $fontpath, 24, 0, 0, 32, “➠”); # Works $image→stringFT(0x0000ff, $fontpath, 24, 0, 0, 64, “𘚟”); # Works $image→stringFT(0x0000ff, $fontpath, 24, 0, 0, 96, “𝅗𝅥”); # Shows “𝅗𝅥” $image→stringFT(0x...
- FS#43 - Do not install private headers (like entities.h) Expand Collapse
-
Do not install the private headers, entities.h for example.
I will add a complete list of these files once we are done with the current discussion in the devel mailing list.
- FS#44 - Install the headers to their directory <gd/gd.h> Expand Collapse
-
Create a directory to install the headers: gd/gd.h for example
- FS#46 - Coding standard Expand Collapse
-
Apply coding standard. It is important to commit one and single patch.
This change must be done prior to any other commit to HEAD.
- FS#49 - gdImageFilledArc does not work well for transparent fill Expand Collapse
-
gdImageFilledArc does not work well for transparent fill. I believe this is because instead of describing the entire area to be filled as a single polygon, it draws many thin triangles one by one. The problem is that the edges of the triangles overlap, and each overlap reduces the effective transparency. This results in a mostly opaque but somewhat mottled fill area.
I attach two figures made by gnuplot. One draws circles by calling gdImageFilledPolygon directly. This one looks nice. The o...
- FS#50 - Add gdImageEllipse function Expand Collapse
-
Add a optimized gdImageEllipse function instead of using a poly lines.
(Sync from my reqwrite in php's gd)
- FS#54 - wobbly text when rotated Expand Collapse
-
When trying to render text at an angle the kerning and baseline are not uniform.
I made the changes to gdft.c from version 2.0.33 of GD. The solution was to perform the glyph transformations in the order that the FreeType website recommends: translate then rotate.
here is the diff:
<code>-bash-3.00$ diff ../gd-2.0.33/gdft.c.orig ../gd-2.0.33/gdft.c 945,947d944 < /* set rotation transform */ < FT_Set_Transform (face, &matrix, NULL); < 1286a1284,1293
//translate
...
- FS#55 - Name and install libgd.so with its proper version number Expand Collapse
-
At this point I have about 6 versions of libgd.so installed on my system, so that I can check backwards compatibility issues. The annoying thing is that they all name themselves libgd.so.2.0.0.
I'd like to request a change to the configure+build script that would name and install the library with its correct version number.
- FS#57 - Reading animated GIF Expand Collapse
-
Reading all frames of animated GIF. Attached is patch (against HEAD) extending gdImageStruct with following members:
int framesNumber; int xOffset; int yOffset; int validColormap; /* use local or global colormap */ int disposal; /* replace or combine frame */ int delay; /* delay time between frames */ struct gdImageStruct **frames; /* all frames of animated GIF */
If GIF...
- FS#59 - Import Windows CE port Expand Collapse
-
This report is for task of importing Windows CE port of libgd to the CVS repository.
- FS#61 - Add BMP support (Read/write) Expand Collapse
-
First: sorry for the bad english!
Bitmap can't load correctly.
PNG-Picture same as BMP-Picture (Create with GIMP and saved as .png and .bmp)
PNG: working fine: gdImageSX=0x03; gdImageSY=0x02; BMP: gdImageSX=0x36; gdImageSY=0x00; BMP-SizeValue is wrong (examine with gdb/ddd/eclipse-cdt).
The c++-code:
[...] FILE *in; [...] gdImagePtr im; im = gdImageCreateFromPng(in); if(im == NULL) im = gdImageCreateFromWBMP(in); if(im == NULL) { cerr<<"No su...
- FS#63 - GDI Like Freetype bounding box and underline spacing and thickne Expand Collapse
-
Hi.
I wanted to be able to get the bounding box based on the font used rather than on the pixels drawn.*
Moreover I needed to know where the underline should be drawn and what thickness it should be.
So I wrote a patch for gd2.0.33, I see it has not been incorporated in 2.0.34 so I send it to you, just in case you find it useful.
An example of its use is attached as well.
The main use of this is to align multiline texts and proper drawing of underlining. The calculated bounding bo...
- FS#65 - gdImageSetThickness() has no effect on Anti Aliased Lines Expand Collapse
-
I tried drawing an anti-aliased line with gdImageLine() on a true color image and it worked. The line was anti-aliased. Then I added a call to gdImageSetThickness() just before the call to gdImageLine() and it had no effect. I then changed the color of the line being draw to white and commented out the call to gdImageSetAntiAliased() and the line was drawn at the new thickness, so it appears either a) anti-aliased lines cannot be draw except with a thickness of 1, or b) this is a bug. It would b...
- FS#69 - Race condition / thread safety within gdImageStringFTEx Expand Collapse
-
Already been reported in the PHP tracker but its slightly harder to fix in libGD since there is no real module initialisation option.
The problem is that the fontcache is checked to be empty, initialised and then locked. It's possible for the fontcache to be initialised between the empty check and creating it.
The reason it can't be locked prior to creating the cache is that the mutex is created within the code. It's fairly easy to fix but there is a good chance it breaks some form of back...
- FS#75 - libGD 2.0.35RC2, GD_GIF_IN.C cannot be less then 0 Expand Collapse
-
The unsigned expression "(count=GetDataBlock(...))" is being compared with a relational operator to a constant whose value is not greater than zero. So statements after if operator cannot be reached. Attached TAR file has already patched GD_GIF_IN.C and a patch file provides this patched file from original one.
- FS#79 - arc's are drawn incorrectly (plus regression in 2.0.35RC2) Expand Collapse
-
I recently upgraded from 2.0.33 to 2.0.35RC2, to see if some bugs I've encountered had been fixed, before reporting them. I noticed a regression in how arc's are drawn. See the attached images. The left side of the circle generated by 2.0.35RC2 looks corrupted. Since the algorithm should be equivilent in all 4 quadrants, hopefully it's just a minor math error translating between quandrants.
Another (existing) issue I've encountered is that arcs of any significant thickness do not draw cor...
- FS#82 - php gd rotation functions vs upstream Expand Collapse
-
Internal PHP gd has some rotation functions that are not in upstream gd. I always wondered why these weren't integrated into upstream?
Like this: http://cvs.pld-linux.org/cgi-bin/cvsweb/SOURCES/gd-rotate_from_php.patch?rev=1.3
- FS#96 - add some TTF fonts to the main source tree Expand Collapse
-
Hi Pierre, as already mentioned in direct chat, here's the free Bitstream TTF font family. I'd suggest that we add 2 or more fonts of these to the libgd project so that the samples look the same on each platform, and the demos / samples dont rely on fonts which are probably not available on some platforms. I'D suggest that we take at least Vera.ttf, VeraSe.ttf.
- FS#108 - Source tree reorganization Expand Collapse
-
We need to reorganize the source tree in 2.1
- FS#119 - Fix Netware build for the new src organisation Expand Collapse
-
Hi Guenter!
Can you take a look at your netware scripts and see what is required to fix in HEAD (2.1)? Thanks :)
- FS#120 - Fix VMS build for new src tree Expand Collapse
-
Hi Alexey!
Can you take a look to CVS HEAD? It requires some tweak as we are reorganizing the src trees. What you have now in CVS is the 2.1.x development trees.
- FS#121 - TIFF support Expand Collapse
-
Add tiff support, read and write.
Patch by Matthew Retallack.
- FS#122 - TGA Support Expand Collapse
-
Patch by Andi Debug Ireland.
Initial TGA support, first written for php-gd. That means we have to update it slightly to get it in gd.
- FS#129 - Add flip functions, horizontally, vertically or diagonally Expand Collapse
-
Add functions to flip an image horizontally, vertically or diagonally. Do we need the equivalent functions to return a new image instead of doing an in place flip?
gdImageFlipVertical(gdImagePtr im); Flip an image about the vertical axis
gdImageFlipHorizontal(gdImagePtr im); Flip an image about the horizontal axis
gdImageFlipBoth(gdImagePtr im); Applies vertical and horizontal flip
- FS#131 - iostream feature offered for inclusion Expand Collapse
-
I have used libgd for many years (thank you for such a useful library) , and have derived input and output streams from gdIOCtx in order to use iostreams. I submit the code below. It is very well tested. Please include it or ignore it as you wish. Note that I have wrapped it in __cplusplus ifdefs so as not to impact 'C' only usage.
- FS#135 - Add a new function --Two colors background fill Expand Collapse
-
Add a new function
gdImageVHFill.c Two colors background fill
Pedro P. Wong
- FS#136 - image crop (and auto crop) Expand Collapse
-
To be able to crop and automatically crop an image has been requested a lot. Adding to the 2.1 todos.
I have the code to do it, backport from P*.
- FS#139 - New buffer formats, rgba 8bit per channel, grayscale Expand Collapse
-
This is a general bug to cover the additions of all new internal buffer formats. We will certainly open separate ones to discuss in details one format or another.
The formats we like to add for now are:
- RGBA, 8bit per channel
- ARGB, 8bit per channel
- BGRA, 8bit per channel
- ABGR, 8bit per channel
- Grayscale, 8bit per channel
- Grayscale, 16bit per channel
These new formats will use the alpha channel as level of opacity and not transparency (what we have now is a 7bi...
- FS#140 - Jpeg 2000, jp2, jpm support Expand Collapse
-
jp2k has been often requested. GD 2.1.0 must come with jp2k support.
Along it, we can add jp2, jpm support as well.
I have some tests code lying around, I will commit it to the playground (gd/playground cvs module) later.
- FS#141 - EXR (HDR) support Expand Collapse
-
Add support for openexr (High Dynamic Rang/HDR formats).
It will use http://www.openexr.org
- FS#153 - CopyMerge clobbers destination alpha transparency Expand Collapse
-
CopyMerge, no matter the requested blending level, always seems to set the alpha of the destination pixels to 00, opaque. Also, when doing the merge, the
See the short attached Perl script, which a black opaque pixel (alpha 0) on top of a transparent white pixel (alpha 127), the result of which is fully opaque white (alpha 0). I expect to get a semi-transparent pixel, alpha 63, as in the last line of output should be 3fffffff instead of 007f7f7f.
More generally, the amount that the sour...
- FS#154 - gdImageFilledArc() is incredible slow Expand Collapse
-
Hi,
the filledArc function is incredible slow. There are many possibilities to enhance that. The first step I implemented: Instead of drawing each small arc the points are stored in an array and in the end filledPolygon is called once. The code works well for me but is not fully tested. A real fast implementation however would use the circle variant of the Bresenham algorithm.
Code:
/* This is no longer expensive! */ if((lx!=x) || (ly !=y)) { ...
- FS#168 - APNG (Animated PNG) Support Expand Collapse
-
Just a hope that APNG could be implemented into the GD Library at some point, considering its upcoming support in browsers.
Text Version