Намалете разделителната способност на DPI на UIImage

Изпращам изображение по имейл чрез mfmailcomposeviewcontroller:

[mailComposer addAttachmentData:UIImageJPEGRepresentation(self.editedImageView.image, 1.0f)
                           mimeType:@"image/jpeg" 
                           fileName:@"yourPhotoWithBestGlasses.jpg"];

Картината, която виждам в имейла си, е с резолюция 160 DPI.

Как мога да го намаля до 72 DPI, за да намаля kb размера, без да губя качество?


person Fabio B.    schedule 06.05.2011    source източник


Отговори (2)


Не можете наистина да намалите размера на kb, без да компрометирате качеството по някакъв начин. Освен това е подвеждащо да се говори за DPI като мярка за разделителната способност на изображението; би било по-добре да погледнете намаляването на размера на пикселите. Изображение от 160 dpi при 10x10 инча е същото по отношение на пикселите като изображение от 72 dpi при 22,2x22,2 инча, така че едното ще бъде преоразмерено, а другото не, въпреки че и двете изображения изглеждат абсолютно еднакви на компютърен монитор, и двете изображения изискващи същия брой байтове.

Важната част от отговора обаче е, че ще трябва да направите компромис с качеството, или чрез размера на пиксела, или чрез качеството на JPEG компресия.

person izb    schedule 06.05.2011

NSData = UIImageJPEGRepresentation(rightPhoto, 0.5);

след това initwithdata обратно.

подробният код

NSData *imageData = UIImageJPEGRepresentation(originalImage, 0.5);

UIImage *tImage = [[UIImage alloc] initWithData:imageData];

originalImage = [tImage copy];

[tImage release];
person chings228    schedule 27.03.2012