             if paths.count > 0 {
                 if let dirPath = paths[0] as? String {
                     let writePath = dirPath.stringByAppendingPathComponent(NSProcessInfo.processInfo().globallyUniqueString)
-                    UIImagePNGRepresentation(image).writeToFile(writePath, atomically: true)
+                    UIImageJPEGRepresentation(image, 0.6).writeToFile(writePath, atomically: true)
                     
                     return NSURL(string: writePath)
                 }

    // MARK: - UICollectionViewDelegateFlowLayout
    
    public func collectionView(collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
        let image = photoAtIndexPath(indexPath)
        
        if enlargedPreviews {
            return BRNImagePickerSheetItemSize.itemSizeForType(BRNImagePickerSheetItemSize.Enlarged, image: image);
        }
    
        return BRNImagePickerSheetItemSize.itemSizeForType(BRNImagePickerSheetItemSize.Normal, image: image);
    }
    
    public func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
        let inset = 2.0 * BRNImagePickerSheet.collectionViewCheckmarkInset

        let size = enlargedPreviews ? BRNImagePickerSheetItemSize.itemSizeForType(BRNImagePickerSheetItemSize.Enlarged, image: nil) : BRNImagePickerSheetItemSize.itemSizeForType(BRNImagePickerSheetItemSize.Normal, image: nil);
        return CGSizeMake(BRNImageSupplementaryView.checkmarkImage.size.width, size.height)
    }
    

enum BRNImagePickerSheetItemSize {
    case Normal, Enlarged
    
    static var itemsRatioCache = [Int : CGFloat]()

    static func itemSizeForType(type: BRNImagePickerSheetItemSize, asset: ALAsset?, indexPath: NSIndexPath?) -> CGSize {
        var ratio: CGFloat = 1.0

        if let _indexPath = indexPath {
            ratio = ratioForAsset(asset, indexPath: _indexPath)
        }

        switch type {
