Re: [GD-DEVEL] Problem using gdImageGetPixel()

[email protected] (Yorn) Thu, 18 Dec 2008 14:43:21 +0100
Newsgroups php.gd.devel
Organization streamnik
Message-ID <[email protected]>
Hey Takeshi,

works perfect, thanks!

- Yorn

Am Donnerstag 18 Dezember 2008 14:08:34 schrieb Takeshi Abe:
> Hi Yorn,
>
> On Thu, 18 Dec 2008 13:31:31 +0100, Yorn <[email protected]> wrote:
> > Hey,
> >
> > However, the example code leads to a segfault...  
>
> My guess is that your pic1.jpg is true color (then im->red etc. were not
> initialized so segfault).
>
> > What I really want is the following:
> > 1) Read a picture (This is where I would like to use libgd for)
> > 2) Maybe resize/resample it
> > 3) get a plain rgba picture (successive placed into memory), so that I
> > can do some internal manipulation
> > 4) calculate an YCbCr 420 Plain (where I would be happy to have the
> > exactly plain discribed in 3)
> >
> > Any idea, how I can get this rgb(a) plain?
>
> How about using gdImageRed/gdImageGreen/gdImageBlue/gdImageAlpha, like the
> followings?
>
> #include <stdio.h>
> #include <gd.h>
>
> int main()
> {
>     FILE *in;
>     gdImagePtr im;
>     int c;
>     in = fopen("pic1.jpg", "rb");
>     im = gdImageCreateFromJpeg(in);
>     fclose(in);
>     c = gdImageGetPixel(im, gdImageSX(im) / 2, gdImageSY(im) / 2);
>     printf("The value of the center pixel is %d", c);
>     int red = gdImageRed(im, c);
>     int green = gdImageGreen(im, c);
>     int blue = gdImageRed(im, c);
>
>     printf(" RGB values are %d %d %d\n", red, green, blue);
>     gdImageDestroy(im);
>     return(0);
> }
>
> Cheers,
> -- Takeshi Abe