Take the first column and swap it with the last col. Do this for the first width/2 columns then we have a flipped image.
void flip_picture(GdkPixbuf *pb) //Left to Right
{
int ht,wt;
int i=0,j=0;
gchar *pixel;
ht=gdk_pixbuf_get_height(pb);
wt=gdk_pixbuf_get_width(pb);
pixel=gdk_pixbuf_get_pixels(pb);
for(i=0;i<ht;i++) //half the width
for(j=0;j<(wt/2)*3;j+=3)
{
swap(pixel[i*wt*3+j+0],pixel[i*wt*3+(wt*3-j)+0]);
swap(pixel[i*wt*3+j+1],pixel[i*wt*3+(wt*3-j)+1]);
swap(pixel[i*wt*3+j+2],pixel[i*wt*3+(wt*3-j)+2]);
}
return;
}