iphone - How to get each pixel position (Coordinate) of a Hollow Character drawn using Core Graphics? -
i using uiview subclass draw alphabet using core graphics.using code hollow characters drwan(by making stroke color- black color).here need each pixel(coordinate) position of character.please give me idea how each pixel point(only black point's pixel value) of hollow character.
source code:
/*uiview subclass method*/ - (void)drawrect:(cgrect)rect { //method draw alphabet [self drawchar:@"a" xcoord:5 ycoords:35]; } -(void)drawchar:(nsstring *)str xcoord: (cgfloat)x ycoord: (cgfloat)y { const char *text = [str utf8string];//getting alphabet cgcontextref ctx = uigraphicsgetcurrentcontext(); cgcontextselectfont(ctx, "helvetica", 40.0, kcgencodingmacroman); cgcontextsettextdrawingmode(ctx, kcgtextfillstroke); cgcontextsetstrokecolorwithcolor(ctx, [uicolor blackcolor].cgcolor);//to make character hollow-need these points cgcontextsetfillcolorwithcolor(ctx, [uicolor clearcolor].cgcolor);//fill color of character clear color cgaffinetransform xform = cgaffinetransformmake( 1.0, 0.0, 0.0, -1.0, 0.0, 0.0);//giving transformation alphabet cgcontextsettextmatrix(ctx, xform); cgcontextshowtextatpoint(ctx, x, y, text, strlen(text));//generating character }
firstly, there's convenient method set fill , stroke color:
[[uicolor blackcolor] setstroke]; [[uicolor clearcolor] setfill];
either or use cgcontextsetgrayfillcolor
, cgcontextsetgraystrokecolor
.
as problem, pixel information, have use cgbitmapcontext
. can bitmap cgbitmapcontextgetdata
. suppose declare rgba bitmap, bitmap data arranged as
rgba_at_(0,0) rgba_at_(1,0) ... rgba_at_(w,0) rgba_at(0,1) rgba_at_(1,1) ...
therefore, can scan linearly target color values , determine black pixels.
please note uigraphicsgetcurrentcontext()
not cgbitmapcontext
, should not apply cgbitmapcontextgetdata
on it. instead, have create own bitmap context cgbitmapcontextcreate
, draw text onto bitmap context, obtain cgimage result cgbitmapcontextcreateimage
, , draw cgimage onto uicontext.
Comments
Post a Comment