ios - How to set the text position in video using CATextLayer in iphone? -
i setting text using catextlayer in video using avmutablecomposition , text being displayed not able set position on screen ... using code text being displayed gets displayed on left side of screen , gets cut half...
is there 1 me sort out problem.i got struck here , not able find solution ..pls me out
code used ...
avassettrack *clipvideotrack = [[videoasset trackswithmediatype:avmediatypevideo] objectatindex:0];
[compositionvideotrack inserttimerange:cmtimerangemake(kcmtimezero, videoasset.duration) oftrack:clipvideotrack attime:kcmtimezero error:nil]; [compositionvideotrack setpreferredtransform:[[[videoasset trackswithmediatype:avmediatypevideo] objectatindex:0] preferredtransform]]; cgsize videosize = [clipvideotrack naturalsize]; uiimage *myimage = [uiimage imagenamed:[arrclipart objectatindex:selectedclipart.tag-200]];//<=======================code set image using calayer calayer *alayer = [calayer layer]; alayer.contents = (id)myimage.cgimage; alayer.frame = cgrectmake(selectedclipart.frame.origin.x-imgmoviethumbnail.frame.origin.x, selectedclipart.frame.origin.y-imgmoviethumbnail.frame.origin.y, 400, 400); alayer.opacity = 1.0; calayer *parentlayer = [calayer layer]; calayer *videolayer = [calayer layer]; parentlayer.frame = cgrectmake(0, 0, videosize.width, videosize.height); videolayer.frame = cgrectmake(0, 0, videosize.width, videosize.height); [parentlayer addsublayer:videolayer]; [parentlayer addsublayer:alayer]; catextlayer *titlelayer = [catextlayer layer];//<========code set text titlelayer.string = txtintro.text; titlelayer.font = (__bridge cftyperef)(txtfont.text); titlelayer.fontsize = 100; //?? titlelayer.shadowopacity = 0.5; titlelayer.alignmentmode = kcaalignmentcenter; titlelayer.bounds = cgrectmake(400,0, 600, videosize.height/2); //you may need adjust proper display
// titlelayer.frame=cgrectmake(100, 100, 50, 30); [parentlayer addsublayer:titlelayer];
try setting position of titlelayer.
titlelayer.position = cgpointmake (100,100);
and titlelayer.frame did work me.
Comments
Post a Comment