I'll assume that the mImageView.frame.size
rectangle is much smaller than the logo.png
images, so they are draw in a smaller rectangle than their original size. What you need to do is create a context that is much larger - say 4 or 8 times larger. Now the core image will have much more detail (but of course be larger too). You can then render this image in a smaller rectangle, and lose resolution, or show it at its native size for full resolution.
The key point here is that your are working with pixels - not vector art - and so if you ever draw an image in a smaller rectangle than its native size, you will lose detail.