objective c - Image appearing pixelerated -


this trying do

  1. create uiimage view.
  2. do drawing on it
  3. press share button share image drawings on it.

my code works perfect on ipad , iphone. problem comes retina display. guess scale not handled correctly, not sure doing wrong. code

// create uiimageview named centercanvas // drawing cgpoint origin = centercanvas.frame.origin; cgsize  size   = centercanvas.frame.size; cgsize screensize = [self returnscreensize]; cgrect  rect   = cgrectmake(origin.x, origin.y, size.width, size.height); uigraphicsbeginimagecontext(screensize); cgcontextref context = uigraphicsgetcurrentcontext(); [self.view.layer renderincontext:context]; uiimage *img = uigraphicsgetimagefromcurrentimagecontext(); uigraphicsendimagecontext(); cgimageref imageref = cgimagecreatewithimageinrect([img cgimage], rect); [shareview setimage:[uiimage imagewithcgimage:imageref]];    -(cgsize) returnscreensize {     cgrect screenbounds = [[uiscreen mainscreen] bounds];     cgfloat screenscale = [[uiscreen mainscreen] scale];     cgsize screensize = cgsizemake(screenbounds.size.width * screenscale,screenbounds.size.height * screenscale);     return screensize; } 

try using

    uigraphicsbeginimagecontextwithoptions(view.bounds.size, view.opaque, 0.0); 

instead of old uigraphicsbeginimagecontext, uses scale factor (third argument above) equal 1. giving 0.0 scale factor scale factor current screen. have @ reference.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c++ - Using OpenSSL in a multi-threaded application -

All overlapping substrings matching a java regex -