objective c - How to get resized image with quality as original iOS? -


i have reviewed , applied many reference resize image same quality not able get.

i able image uiview , resize code mentioned below: -

- (uiimage *)imagewithview:(uiview *)view {     uigraphicsbeginimagecontextwithoptions(view.bounds.size, no, [uiscreen mainscreen].scale);     [view drawviewhierarchyinrect:view.bounds afterscreenupdates:yes];     uiimage *image = uigraphicsgetimagefromcurrentimagecontext();     uigraphicsendimagecontext();      nsdata* imagedata =  uiimagepngrepresentation(image);     uiimage* pngimage = [uiimage imagewithdata:imagedata];     uiimagewritetosavedphotosalbum(pngimage, nil, nil, nil); // png image size: {750, 1334}     nslog(@"png image size: %@", pngimage);       cgsize size = cgsizemake(375, 667);     [self imagewithimage1:pngimage scaledtosize:size];     [self imagewithimage2:pngimage scaledtosize:size];      return image; }  - (uiimage *)imagewithimage1:(uiimage *)image scaledtosize:(cgsize)newsize {     uigraphicsbeginimagecontext(newsize);     [image drawinrect:cgrectmake(0, 0, newsize.width, newsize.height)];     uiimage *newimage = uigraphicsgetimagefromcurrentimagecontext();     uigraphicsendimagecontext();      nsdata* imagedata1 =  uiimagepngrepresentation(newimage);     uiimage* scaledimage1 = [uiimage imagewithdata:imagedata1];     uiimagewritetosavedphotosalbum(scaledimage1, nil, nil, nil); // png resized image 1 size: {375, 667}     nslog(@"png scaled image size: %@", scaledimage1);      return newimage; }  -(uiimage *)imagewithimage2:(uiimage*)image scaledtosize:(cgsize)newsize {     // create bitmap context.     uigraphicsbeginimagecontextwithoptions(newsize, no, 1);     [image drawinrect:cgrectmake(0,0,newsize.width,newsize.height)];     uiimage* newimage = uigraphicsgetimagefromcurrentimagecontext();     uigraphicsendimagecontext();      nsdata* imagedata1 =  uiimagepngrepresentation(newimage);     uiimage* scaledimage1 = [uiimage imagewithdata:imagedata1];     uiimagewritetosavedphotosalbum(scaledimage1, nil, nil, nil); // png resized image 2 size: {375, 667}     nslog(@"png scaled image size: %@", scaledimage1);      return newimage; } 

png image size: {750, 1334}

both image getting png image after resizing {375, 667}. correct per requirement.

but quality of both resized image down original png image. can recognise button, icons , texts blurry.

how can fix it. please help, in advance.

i need resized image same quality png image.

png image:

enter image description here

png resized image 1:

enter image description here

png resized image 2:

enter image description here

resize quality

 - (uiimage *)imagewithimage:(uiimage*)image scaledtosize:(cgsize)newsize     {         // create bitmap context.         uigraphicsbeginimagecontextwithoptions(newsize, yes, image.scale);         [image drawinrect:cgrectmake(0,0,newsize.width,newsize.height)];         uiimage* newimage = uigraphicsgetimagefromcurrentimagecontext();         uigraphicsendimagecontext();         return newimage;      } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -