2015-09-04 2 views
0

У меня есть фрагмент кода, который использует библиотеку ImageIO, чтобы изменить размер изображения, чтобы уменьшить его при загрузке в Parse. После загрузки изображение поворачивается на 45 градусов против часовой стрелки.Данные изображения вращаются на 45 градусов после изменения размера

let imageBytes = UIImageJPEGRepresentation(imageView.image, 1.0) 
let size = CGSizeMake(1024, 1024) 
if let imageSource = CGImageSourceCreateWithData(imageBytes, nil) { 

    let options: [NSString: AnyObject] = [ 
    kCGImageSourceThumbnailMaxPixelSize: NSNumber(double: Double(max(size.width, size.height))/2.0), 
    kCGImageSourceCreateThumbnailFromImageIfAbsent: true, 
    kCGImageSourceCreateThumbnailWithTransform: false 
    ] 

    //2. Recreate the Image that has been scaled 
    let scaledImage = UIImage(CGImage: CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options)) 
    let scaledImageBytes = UIImageJPEGRepresentation(scaledImage, 1.0) 

    let metaData = [ 
    "imageBytes": scaledImageBytes, //for some reason, scaledImageBytes causes a 90 degree rotation on the picture. Using unscaled image for now. 
    ] 
    //3. upload the image to Parse 
    PFCloud.callFunctionInBackground("uploadImage", withParameters: metaData) { message, error in 
    if let error = error { 
     println("error uploading: \(error)") 
    } else if let message = message as? String { 
     println("success: \(message)") 
    } 
    } 
} 

Как решить эту проблему?

ответ

1

проверить эту функцию, чтобы нормализовать ваш образ

func normalizeImage(raw: UIImage) -> UIImage { 
    if raw.imageOrientation == UIImageOrientation.Up { 
     return raw 
    } 
    UIGraphicsBeginImageContextWithOptions(raw.size, false, raw.scale) 
    raw.drawInRect(CGRect(origin: CGPointZero, size: raw.size)) 
    var normalizedImage: UIImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return normalizedImage 
} 
Смежные вопросы