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:
png resized image 1:
png resized image 2:
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
Post a Comment