----- Message d'origine ---- > De : Paolo Bonzini <[email protected]> > > On 01/09/2011 11:31 PM, Mathieu Suen wrote: > > When I was playing with cairo I thought there was no other way than this > > to >write > > on a surface: > > cpngSurface := Cairo.CairoPngSurface on: 'test.png' extent: wi...@height. > > data := Cairo.Cairo imageSurfaceGetData: cpngSurface cairoSurface. > > .. > > data at: (i*4) + (j*stride) + 3 put: (CChar value: 255) type: CChar. > > > > #imageSurfaceGetData: returns an instance of CObject. > > How to make #imageSurfaceGetData: returns a CCharArray to do something like: > > data at: (i*4) + (j*stride) + 3 put: 255 ? > > Something like this? > > diff --git a/packages/cairo/CairoFuncs.st b/packages/cairo/CairoFuncs.st > index e3af859..e0316c0 100644 > --- a/packages/cairo/CairoFuncs.st > +++ b/packages/cairo/CairoFuncs.st > @@ -96,7 +96,7 @@ CairoContext.'> > ] > > Cairo class >> imageSurfaceGetData: surface [ > - <cCall: 'cairo_image_surface_get_data' returning: #cObject args: >#(#cObject)> > + <cCall: 'cairo_image_surface_get_data' returning: #{CByte} args: >#(#cObject)> > ] > > Cairo class >> imageSurfaceGetHeight: filename [ > diff --git a/packages/cairo/CairoSurface.st b/packages/cairo/CairoSurface.st > index ba82e5e..097dcfd 100644 > --- a/packages/cairo/CairoSurface.st > +++ b/packages/cairo/CairoSurface.st > @@ -296,6 +296,11 @@ CairoLoadableFileSurface subclass: CairoPngSurface [ > ^Cairo imageSurfaceCreateFromPng: filename > ] > > + data [ > + <category: 'C interface'> > + ^Cairo imageSurfaceGetData: self cairoSurface > + ] > + > save [ > "Save the contents of the surface to the PNG file specified by > #filename." > >
Yeap :) Thanks > Paolo > _______________________________________________ help-smalltalk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-smalltalk
