├── .gitignore
├── LICENSE
├── M80ImageMerger
├── M80ImageMerger.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── M80ImageMerger.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── M80ImageMerger
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-60@2x.png
│ │ │ ├── Icon-60@3x.png
│ │ │ ├── Icon-76.png
│ │ │ ├── Icon-76@2x.png
│ │ │ ├── Icon-Small-40.png
│ │ │ ├── Icon-Small-40@2x.png
│ │ │ ├── Icon-Small-40@3x.png
│ │ │ ├── Icon-Small.png
│ │ │ ├── Icon-Small@2x.png
│ │ │ ├── Icon-Small@3x.png
│ │ │ └── centaur.jpg
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Classes
│ │ ├── Algorithm
│ │ │ ├── M80Constraint.h
│ │ │ ├── M80Constraint.m
│ │ │ ├── M80ImageFingerprint.h
│ │ │ ├── M80ImageFingerprint.m
│ │ │ ├── M80ImageGenerator.h
│ │ │ ├── M80ImageGenerator.m
│ │ │ ├── M80ImageMergeInfo.h
│ │ │ └── M80ImageMergeInfo.m
│ │ ├── Sections
│ │ │ ├── Main
│ │ │ │ ├── Entity
│ │ │ │ │ ├── M80MergeResult.h
│ │ │ │ │ └── M80MergeResult.m
│ │ │ │ ├── Interactor
│ │ │ │ │ ├── M80MainInteractor.h
│ │ │ │ │ ├── M80MainInteractor.m
│ │ │ │ │ ├── M80RecentImageFinder.h
│ │ │ │ │ └── M80RecentImageFinder.m
│ │ │ │ └── ViewController
│ │ │ │ │ ├── ViewController.h
│ │ │ │ │ └── ViewController.m
│ │ │ └── Preview
│ │ │ │ ├── M80ImageViewController.h
│ │ │ │ └── M80ImageViewController.m
│ │ └── Util
│ │ │ ├── UIImage+M80.h
│ │ │ └── UIImage+M80.m
│ ├── Info.plist
│ ├── Vendor
│ │ └── CTAssetsPickerController
│ │ │ ├── CTAssetCheckmark.h
│ │ │ ├── CTAssetCheckmark.m
│ │ │ ├── CTAssetCollectionViewCell.h
│ │ │ ├── CTAssetCollectionViewCell.m
│ │ │ ├── CTAssetCollectionViewController.h
│ │ │ ├── CTAssetCollectionViewController.m
│ │ │ ├── CTAssetItemViewController.h
│ │ │ ├── CTAssetItemViewController.m
│ │ │ ├── CTAssetPlayButton.h
│ │ │ ├── CTAssetPlayButton.m
│ │ │ ├── CTAssetScrollView.h
│ │ │ ├── CTAssetScrollView.m
│ │ │ ├── CTAssetSelectionButton.h
│ │ │ ├── CTAssetSelectionButton.m
│ │ │ ├── CTAssetSelectionLabel.h
│ │ │ ├── CTAssetSelectionLabel.m
│ │ │ ├── CTAssetThumbnailOverlay.h
│ │ │ ├── CTAssetThumbnailOverlay.m
│ │ │ ├── CTAssetThumbnailStacks.h
│ │ │ ├── CTAssetThumbnailStacks.m
│ │ │ ├── CTAssetThumbnailView.h
│ │ │ ├── CTAssetThumbnailView.m
│ │ │ ├── CTAssetsGridSelectedView.h
│ │ │ ├── CTAssetsGridSelectedView.m
│ │ │ ├── CTAssetsGridView.h
│ │ │ ├── CTAssetsGridView.m
│ │ │ ├── CTAssetsGridViewCell.h
│ │ │ ├── CTAssetsGridViewCell.m
│ │ │ ├── CTAssetsGridViewController.h
│ │ │ ├── CTAssetsGridViewController.m
│ │ │ ├── CTAssetsGridViewFooter.h
│ │ │ ├── CTAssetsGridViewFooter.m
│ │ │ ├── CTAssetsGridViewLayout.h
│ │ │ ├── CTAssetsGridViewLayout.m
│ │ │ ├── CTAssetsNavigationController.h
│ │ │ ├── CTAssetsNavigationController.m
│ │ │ ├── CTAssetsPageView.h
│ │ │ ├── CTAssetsPageView.m
│ │ │ ├── CTAssetsPageViewController.h
│ │ │ ├── CTAssetsPageViewController.m
│ │ │ ├── CTAssetsPickerAccessDeniedView.h
│ │ │ ├── CTAssetsPickerAccessDeniedView.m
│ │ │ ├── CTAssetsPickerController.bundle
│ │ │ ├── AccessDeniedViewLock.png
│ │ │ ├── AccessDeniedViewLock@2x.png
│ │ │ ├── AccessDeniedViewLock@3x.png
│ │ │ ├── BadgeAllPhotos@2x.png
│ │ │ ├── BadgeAllPhotos@3x.png
│ │ │ ├── BadgeBurst@2x.png
│ │ │ ├── BadgeBurst@3x.png
│ │ │ ├── BadgeFavorites@2x.png
│ │ │ ├── BadgeFavorites@3x.png
│ │ │ ├── BadgeLastImport@2x.png
│ │ │ ├── BadgeLastImport@3x.png
│ │ │ ├── BadgePanorama@2x.png
│ │ │ ├── BadgePanorama@3x.png
│ │ │ ├── BadgeRecentlyDeleted@2x.png
│ │ │ ├── BadgeRecentlyDeleted@3x.png
│ │ │ ├── BadgeScreenshots@2x.png
│ │ │ ├── BadgeScreenshots@3x.png
│ │ │ ├── BadgeSelfPortraits@2x.png
│ │ │ ├── BadgeSelfPortraits@3x.png
│ │ │ ├── BadgeSloMoSmall.png
│ │ │ ├── BadgeSloMoSmall@2x.png
│ │ │ ├── BadgeSloMoSmall@3x.png
│ │ │ ├── BadgeSlomo@2x.png
│ │ │ ├── BadgeSlomo@3x.png
│ │ │ ├── BadgeTimelapse@2x.png
│ │ │ ├── BadgeTimelapse@3x.png
│ │ │ ├── BadgeTimelapseSmall.png
│ │ │ ├── BadgeTimelapseSmall@2x.png
│ │ │ ├── BadgeTimelapseSmall@3x.png
│ │ │ ├── BadgeVideo@2x.png
│ │ │ ├── BadgeVideo@3x.png
│ │ │ ├── BadgeVideoSmall.png
│ │ │ ├── BadgeVideoSmall@2x.png
│ │ │ ├── BadgeVideoSmall@3x.png
│ │ │ ├── Checkmark.png
│ │ │ ├── Checkmark@2x.png
│ │ │ ├── Checkmark@3x.png
│ │ │ ├── CheckmarkShadow.png
│ │ │ ├── CheckmarkShadow@2x.png
│ │ │ ├── CheckmarkShadow@3x.png
│ │ │ ├── CheckmarkUnselected.png
│ │ │ ├── CheckmarkUnselected@2x.png
│ │ │ ├── CheckmarkUnselected@3x.png
│ │ │ ├── DisclosureArrow.png
│ │ │ ├── DisclosureArrow@2x.png
│ │ │ ├── DisclosureArrow@3x.png
│ │ │ ├── GridDisabledAsset.png
│ │ │ ├── GridDisabledAsset@2x.png
│ │ │ ├── GridDisabledAsset@3x.png
│ │ │ ├── GridEmptyAlbum.png
│ │ │ ├── GridEmptyAlbum@2x.png
│ │ │ ├── GridEmptyAlbum@3x.png
│ │ │ ├── GridEmptyAlbumShared.png
│ │ │ ├── GridEmptyAlbumShared@2x.png
│ │ │ ├── GridEmptyAlbumShared@3x.png
│ │ │ ├── GridEmptyCameraRoll.png
│ │ │ ├── GridEmptyCameraRoll@2x.png
│ │ │ ├── GridEmptyCameraRoll@3x.png
│ │ │ ├── GridGradient.png
│ │ │ ├── GridGradient@2x.png
│ │ │ ├── GridGradient@3x.png
│ │ │ ├── GridHiddenAlbum@2x.png
│ │ │ ├── GridHiddenAlbum@3x.png
│ │ │ ├── PauseButton.png
│ │ │ ├── PauseButton@2x.png
│ │ │ ├── PauseButton@3x.png
│ │ │ ├── PlayButton.png
│ │ │ ├── PlayButton@2x.png
│ │ │ ├── PlayButton@3x.png
│ │ │ ├── VideoPlayButtonMask.png
│ │ │ ├── VideoPlayButtonMask@2x.png
│ │ │ ├── VideoPlayButtonMask@3x.png
│ │ │ ├── VideoPlayGlyphMask.png
│ │ │ ├── VideoPlayGlyphMask@2x.png
│ │ │ ├── VideoPlayGlyphMask@3x.png
│ │ │ ├── ar.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── da.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── de.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── en.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── es-MX.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── es.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── fi.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── fr.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── he.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── hi-IN.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── hu.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── id.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── it.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── ja.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── ko.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── nl-NL.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── nl.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── pt-PT.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── pt.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── ru.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── sv.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── zh-Hans.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ └── zh-Hant.lproj
│ │ │ │ └── CTAssetsPicker.strings
│ │ │ ├── CTAssetsPickerController.h
│ │ │ ├── CTAssetsPickerController.m
│ │ │ ├── CTAssetsPickerDefines.h
│ │ │ ├── CTAssetsPickerNoAssetsView.h
│ │ │ ├── CTAssetsPickerNoAssetsView.m
│ │ │ ├── CTAssetsViewControllerTransition.h
│ │ │ ├── CTAssetsViewControllerTransition.m
│ │ │ └── Categories
│ │ │ ├── CTAssetsPageViewController+Internal.h
│ │ │ ├── CTAssetsPickerController+Internal.h
│ │ │ ├── NSBundle+CTAssetsPickerController.h
│ │ │ ├── NSBundle+CTAssetsPickerController.m
│ │ │ ├── NSDateFormatter+CTAssetsPickerController.h
│ │ │ ├── NSDateFormatter+CTAssetsPickerController.m
│ │ │ ├── NSIndexSet+CTAssetsPickerController.h
│ │ │ ├── NSIndexSet+CTAssetsPickerController.m
│ │ │ ├── NSNumberFormatter+CTAssetsPickerController.h
│ │ │ ├── NSNumberFormatter+CTAssetsPickerController.m
│ │ │ ├── PHAsset+CTAssetsPickerController.h
│ │ │ ├── PHAsset+CTAssetsPickerController.m
│ │ │ ├── PHAssetCollection+CTAssetsPickerController.h
│ │ │ ├── PHAssetCollection+CTAssetsPickerController.m
│ │ │ ├── UICollectionView+CTAssetsPickerController.h
│ │ │ ├── UICollectionView+CTAssetsPickerController.m
│ │ │ ├── UIImage+CTAssetsPickerController.h
│ │ │ └── UIImage+CTAssetsPickerController.m
│ └── main.m
├── Podfile
├── Podfile.lock
└── Pods
│ ├── Crashlytics
│ ├── Crashlytics.framework
│ │ ├── README
│ │ └── submit
│ ├── README.md
│ ├── iOS
│ │ └── Crashlytics.framework
│ │ │ ├── Crashlytics
│ │ │ ├── Headers
│ │ │ ├── ANSCompatibility.h
│ │ │ ├── Answers.h
│ │ │ ├── CLSAttributes.h
│ │ │ ├── CLSLogging.h
│ │ │ ├── CLSReport.h
│ │ │ ├── CLSStackFrame.h
│ │ │ └── Crashlytics.h
│ │ │ ├── Info.plist
│ │ │ ├── Modules
│ │ │ └── module.modulemap
│ │ │ ├── run
│ │ │ ├── submit
│ │ │ └── uploadDSYM
│ └── submit
│ ├── Fabric
│ ├── Fabric.framework
│ │ ├── README
│ │ └── run
│ ├── README.md
│ ├── iOS
│ │ └── Fabric.framework
│ │ │ ├── Fabric
│ │ │ ├── Headers
│ │ │ ├── FABAttributes.h
│ │ │ └── Fabric.h
│ │ │ ├── Info.plist
│ │ │ ├── Modules
│ │ │ └── module.modulemap
│ │ │ ├── run
│ │ │ └── uploadDSYM
│ ├── run
│ ├── upload-symbols
│ └── uploadDSYM
│ ├── Headers
│ ├── Private
│ │ ├── PureLayout
│ │ │ ├── ALView+PureLayout.h
│ │ │ ├── NSArray+PureLayout.h
│ │ │ ├── NSLayoutConstraint+PureLayout.h
│ │ │ ├── PureLayout+Internal.h
│ │ │ ├── PureLayout.h
│ │ │ └── PureLayoutDefines.h
│ │ ├── SVProgressHUD
│ │ │ ├── SVIndefiniteAnimatedView.h
│ │ │ ├── SVProgressAnimatedView.h
│ │ │ ├── SVProgressHUD.h
│ │ │ └── SVRadialGradientLayer.h
│ │ └── Toast
│ │ │ └── UIView+Toast.h
│ └── Public
│ │ ├── Crashlytics
│ │ └── Crashlytics
│ │ │ ├── ANSCompatibility.h
│ │ │ ├── Answers.h
│ │ │ ├── CLSAttributes.h
│ │ │ ├── CLSLogging.h
│ │ │ ├── CLSReport.h
│ │ │ ├── CLSStackFrame.h
│ │ │ └── Crashlytics.h
│ │ ├── Fabric
│ │ └── Fabric
│ │ │ ├── FABAttributes.h
│ │ │ └── Fabric.h
│ │ ├── PureLayout
│ │ ├── ALView+PureLayout.h
│ │ ├── NSArray+PureLayout.h
│ │ ├── NSLayoutConstraint+PureLayout.h
│ │ ├── PureLayout+Internal.h
│ │ ├── PureLayout.h
│ │ └── PureLayoutDefines.h
│ │ ├── SVProgressHUD
│ │ ├── SVIndefiniteAnimatedView.h
│ │ ├── SVProgressAnimatedView.h
│ │ ├── SVProgressHUD.h
│ │ └── SVRadialGradientLayer.h
│ │ └── Toast
│ │ └── UIView+Toast.h
│ ├── Manifest.lock
│ ├── Pods.xcodeproj
│ └── project.pbxproj
│ ├── PureLayout
│ ├── LICENSE
│ ├── PureLayout
│ │ └── PureLayout
│ │ │ ├── ALView+PureLayout.h
│ │ │ ├── ALView+PureLayout.m
│ │ │ ├── NSArray+PureLayout.h
│ │ │ ├── NSArray+PureLayout.m
│ │ │ ├── NSLayoutConstraint+PureLayout.h
│ │ │ ├── NSLayoutConstraint+PureLayout.m
│ │ │ ├── PureLayout+Internal.h
│ │ │ ├── PureLayout.h
│ │ │ └── PureLayoutDefines.h
│ └── README.md
│ ├── SVProgressHUD
│ ├── LICENSE.txt
│ ├── README.md
│ └── SVProgressHUD
│ │ ├── SVIndefiniteAnimatedView.h
│ │ ├── SVIndefiniteAnimatedView.m
│ │ ├── SVProgressAnimatedView.h
│ │ ├── SVProgressAnimatedView.m
│ │ ├── SVProgressHUD.bundle
│ │ ├── angle-mask.png
│ │ ├── angle-mask@2x.png
│ │ ├── angle-mask@3x.png
│ │ ├── error.png
│ │ ├── error@2x.png
│ │ ├── error@3x.png
│ │ ├── info.png
│ │ ├── info@2x.png
│ │ ├── info@3x.png
│ │ ├── success.png
│ │ ├── success@2x.png
│ │ └── success@3x.png
│ │ ├── SVProgressHUD.h
│ │ ├── SVProgressHUD.m
│ │ ├── SVRadialGradientLayer.h
│ │ └── SVRadialGradientLayer.m
│ ├── Target Support Files
│ ├── Pods-M80ImageMerger
│ │ ├── Pods-M80ImageMerger-acknowledgements.markdown
│ │ ├── Pods-M80ImageMerger-acknowledgements.plist
│ │ ├── Pods-M80ImageMerger-dummy.m
│ │ ├── Pods-M80ImageMerger-frameworks.sh
│ │ ├── Pods-M80ImageMerger-resources.sh
│ │ ├── Pods-M80ImageMerger.debug.xcconfig
│ │ └── Pods-M80ImageMerger.release.xcconfig
│ ├── PureLayout
│ │ ├── PureLayout-dummy.m
│ │ ├── PureLayout-prefix.pch
│ │ └── PureLayout.xcconfig
│ ├── SVProgressHUD
│ │ ├── SVProgressHUD-dummy.m
│ │ ├── SVProgressHUD-prefix.pch
│ │ └── SVProgressHUD.xcconfig
│ └── Toast
│ │ ├── Toast-dummy.m
│ │ ├── Toast-prefix.pch
│ │ └── Toast.xcconfig
│ └── Toast
│ ├── README.markdown
│ ├── Toast
│ └── Toast
│ │ ├── UIView+Toast.h
│ │ └── UIView+Toast.m
│ └── license
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | build/
4 | *.pbxuser
5 | !default.pbxuser
6 | *.mode1v3
7 | !default.mode1v3
8 | *.mode2v3
9 | !default.mode2v3
10 | *.perspectivev3
11 | !default.perspectivev3
12 | xcuserdata
13 | *.xccheckout
14 | *.moved-aside
15 | DerivedData
16 | *.hmap
17 | *.ipa
18 | *.xcuserstate
19 |
20 | # CocoaPods
21 | #
22 | # We recommend against adding the Pods directory to your .gitignore. However
23 | # you should judge for yourself, the pros and cons are mentioned at:
24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
25 | #
26 | #Pods/
27 | .DS_Store
28 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 11/27/15.
6 | // Copyright © 2015 M80. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 11/27/15.
6 | // Copyright © 2015 M80. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "CTAssetSelectionLabel.h"
11 | #import
12 | #import
13 |
14 | @interface AppDelegate ()
15 |
16 | @end
17 |
18 | @implementation AppDelegate
19 |
20 |
21 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
22 |
23 | [Fabric with:@[[Answers class],[Crashlytics class]]];
24 |
25 | [UINavigationBar appearance].tintColor = [UIColor darkGrayColor];
26 | [CTAssetSelectionLabel appearance].cornerRadius = 12.5;
27 | NSLog(@"screen scale %lf",[[UIScreen mainScreen] scale]);
28 | return YES;
29 | }
30 |
31 | - (void)applicationWillResignActive:(UIApplication *)application {
32 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
33 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
34 | }
35 |
36 | - (void)applicationDidEnterBackground:(UIApplication *)application {
37 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
38 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
39 | }
40 |
41 | - (void)applicationWillEnterForeground:(UIApplication *)application {
42 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
43 | }
44 |
45 | - (void)applicationDidBecomeActive:(UIApplication *)application {
46 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
47 | }
48 |
49 | - (void)applicationWillTerminate:(UIApplication *)application {
50 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
51 | }
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-76.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/centaur.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Assets.xcassets/AppIcon.appiconset/centaur.jpg
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Algorithm/M80Constraint.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80Constraint.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 2017/12/29.
6 | // Copyright © 2017年 M80. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "M80ImageFingerprint.h"
12 | @class M80ImageMergeInfo;
13 |
14 | @interface M80Constraint : NSObject
15 | @property (nonatomic,assign) CGFloat minImageHeight;
16 |
17 | + (NSInteger)topOffset;
18 | + (NSInteger)bottomOffset;
19 | + (BOOL)isInfoValid:(M80ImageMergeInfo *)info;
20 | + (BOOL)shouldUseGradientImage:(M80FingerprintType)type;
21 | @end
22 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Algorithm/M80Constraint.m:
--------------------------------------------------------------------------------
1 | //
2 | // M80Constraint.m
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 2017/12/29.
6 | // Copyright © 2017年 M80. All rights reserved.
7 | //
8 |
9 | #import "M80Constraint.h"
10 | #import "M80ImageMergeInfo.h"
11 |
12 |
13 | @implementation M80Constraint
14 | + (NSInteger)topOffset
15 | {
16 | if ([UIScreen mainScreen].bounds.size.height == 812)
17 | {
18 | return (44 + 44) * 3;
19 | }
20 | else
21 | {
22 | return (44 + 20) * [[UIScreen mainScreen] scale];
23 | }
24 | }
25 |
26 | + (NSInteger)bottomOffset
27 | {
28 | if ([UIScreen mainScreen].bounds.size.height == 812)
29 | {
30 | return (44 + 34) * 3;
31 | }
32 | else
33 | {
34 | return (44) * [[UIScreen mainScreen] scale];
35 | }
36 | }
37 |
38 | + (BOOL)isInfoValid:(M80ImageMergeInfo *)info
39 | {
40 | NSInteger threshold = [M80Constraint requiredThreshold:info];
41 | NSInteger length = info.length;
42 | NSLog(@"validate info [%@] threshold %d",info,(int)threshold);
43 | return threshold > 0 &&
44 | length > threshold &&
45 | info.secondOffset > info.firstOffset;
46 | }
47 |
48 |
49 | + (NSInteger)requiredThreshold:(M80ImageMergeInfo *)info
50 | {
51 | NSInteger minImageHeight = MIN(info.firstImage.size.height, info.secondImage.size.height);
52 | double factor = [M80Constraint shouldUseGradientImage:info.type] ? 0.10618 : 0.0618;
53 | return (NSInteger)((minImageHeight - [M80Constraint topOffset] - [M80Constraint bottomOffset]) * factor);
54 |
55 | }
56 |
57 | + (BOOL)shouldUseGradientImage:(M80FingerprintType)type
58 | {
59 | return type == M80FingerprintTypeCRC && [[UIScreen mainScreen] scale] >= 3.0;
60 | }
61 | @end
62 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Algorithm/M80ImageFingerprint.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80ImageFingerprint.h
3 | // M80Image
4 | //
5 | // Created by amao on 11/18/15.
6 | // Copyright © 2015 Netease. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | typedef enum : NSUInteger {
13 | M80FingerprintTypeCRC,
14 | M80FingerprintTypeHistogram,
15 | } M80FingerprintType;
16 |
17 |
18 |
19 | @interface M80ImageFingerprint : NSObject
20 | @property (nonatomic,strong) NSArray *lines;
21 | + (instancetype)fingerprint:(UIImage *)image
22 | type:(M80FingerprintType)type;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Algorithm/M80ImageGenerator.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80ImageGenerator.h
3 | // M80Image
4 | //
5 | // Created by amao on 11/18/15.
6 | // Copyright © 2015 Netease. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | typedef enum : NSUInteger {
13 | M80MergeErrorNotSameWidth,
14 | M80MergeErrorNotEnoughOverlap,
15 | } M80MergeError;
16 |
17 | #define M80ERRORDOMAIN @"www.xiangwangfeng.com"
18 |
19 | @interface M80ImageGenerator : NSObject
20 | @property (nonatomic,strong) NSError *error;
21 |
22 | - (BOOL)feedImage:(UIImage *)image;
23 | - (BOOL)feedImages:(NSArray *)images;
24 |
25 | - (UIImage *)generate;
26 | @end
27 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Algorithm/M80ImageMergeInfo.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80ImageMergeInfo.h
3 | // M80Image
4 | //
5 | // Created by amao on 11/18/15.
6 | // Copyright © 2015 Netease. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "M80ImageFingerprint.h"
12 |
13 |
14 |
15 |
16 | @interface M80ImageMergeInfo : NSObject
17 | //input
18 | @property (nonatomic,strong) UIImage *firstImage;
19 | @property (nonatomic,strong) UIImage *secondImage;
20 | @property (nonatomic,assign) M80FingerprintType type;
21 |
22 | //output
23 | @property (nonatomic,assign) NSInteger firstOffset; //为计算方便,此处为从 bottom 计算的 offset
24 | @property (nonatomic,assign) NSInteger secondOffset; //为计算方便,此处为从 bottom 计算的 offset
25 | @property (nonatomic,assign) NSInteger length; //重合部分长度
26 |
27 | - (void)calc;
28 | @end
29 |
30 |
31 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Sections/Main/Entity/M80MergeResult.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80MergeResult.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 2017/1/4.
6 | // Copyright © 2017年 M80. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface M80MergeResult : NSObject
13 | @property (nonatomic,strong) UIImage *image;
14 | @property (nonatomic,copy) dispatch_block_t completion;
15 | @property (nonatomic,strong) NSError *error;
16 |
17 | + (instancetype)resultBy:(UIImage *)image
18 | error:(NSError *)error
19 | assets:(NSArray *)assets;
20 | @end
21 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Sections/Main/Entity/M80MergeResult.m:
--------------------------------------------------------------------------------
1 | //
2 | // M80MergeResult.m
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 2017/1/4.
6 | // Copyright © 2017年 M80. All rights reserved.
7 | //
8 |
9 | #import "M80MergeResult.h"
10 | #import "UIView+Toast.h"
11 |
12 | @import Photos;
13 |
14 | @implementation M80MergeResult
15 | + (instancetype)resultBy:(UIImage *)image
16 | error:(NSError *)error
17 | assets:(NSArray *)assets
18 | {
19 | M80MergeResult *result = [[M80MergeResult alloc] init];
20 | result.image = image;
21 | result.error = error;
22 |
23 | if (image && !error)
24 | {
25 | result.completion = ^(){
26 |
27 | #ifndef DEBUG
28 | UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
29 | [keyWindow makeToast:@"清理临时文件..."];
30 |
31 | [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
32 | [PHAssetChangeRequest deleteAssets:assets];
33 | } completionHandler:nil];
34 | #endif
35 |
36 | };
37 | }
38 | return result;
39 | }
40 | @end
41 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Sections/Main/Interactor/M80MainInteractor.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80MainInteractor.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 2016/12/8.
6 | // Copyright © 2016年 M80. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "M80MergeResult.h"
12 |
13 |
14 |
15 |
16 | @protocol M80MainIteractorDelegate
17 | - (void)photosRequestAuthorizationFailed;
18 |
19 | - (void)presentViewController:(UIViewController *)viewControllerToPresent
20 | animated:(BOOL)flag
21 | completion:(void (^)(void))completion;
22 |
23 | - (void)showResult:(M80MergeResult *)result;
24 |
25 | - (void)mergeBegin;
26 |
27 | - (void)mergeEnd;
28 | @end
29 |
30 | @interface M80MainInteractor : NSObject
31 | @property (nonatomic,weak) id delegate;
32 | - (void)run;
33 |
34 | - (void)chooseImages;
35 | @end
36 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Sections/Main/Interactor/M80RecentImageFinder.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80RecentImageFinder.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 2016/12/7.
6 | // Copyright © 2016年 M80. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol M80RecentImageFinderDelegate
12 | - (void)onFindRecentImages:(NSArray *)images;
13 | @end
14 |
15 | @interface M80RecentImageFinder : NSObject
16 | @property (nonatomic,weak) id delegate;
17 | - (void)run;
18 | @end
19 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Sections/Main/ViewController/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 11/27/15.
6 | // Copyright © 2015 M80. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Sections/Preview/M80ImageViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // M80ImageViewController.h
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 11/27/15.
6 | // Copyright © 2015 M80. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface M80ImageViewController : UIViewController
12 | @property (nonatomic,copy) dispatch_block_t completion;
13 | - (instancetype)initWithImage:(UIImage *)image;
14 | @end
15 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Classes/Util/UIImage+M80.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+M80.h
3 | // M80Image
4 | //
5 | // Created by amao on 11/18/15.
6 | // Copyright © 2015 Netease. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface UIImage (M80)
13 | - (UIImage *)m80_subImage:(CGRect)rect;
14 |
15 | - (UIImage *)m80_rangedImage:(NSRange)range;
16 |
17 | - (BOOL)m80_saveAsPngFile:(NSString *)path;
18 |
19 | - (UIImage *)m80_gradientImage;
20 | @end
21 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | zh_CN
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | Centaur
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.8.1
19 | CFBundleSignature
20 | ????
21 | CFBundleURLTypes
22 |
23 |
24 | CFBundleTypeRole
25 | Editor
26 | CFBundleURLName
27 | www.xiangwangfeng.com.centaur
28 | CFBundleURLSchemes
29 |
30 | centaur
31 |
32 |
33 |
34 | CFBundleVersion
35 | 1
36 | Fabric
37 |
38 | APIKey
39 | 1d577a8f01767e602d3325fd67a902a24ddd1dbe
40 | Kits
41 |
42 |
43 | KitInfo
44 |
45 | KitName
46 | Answers
47 |
48 |
49 |
50 | LSRequiresIPhoneOS
51 |
52 | NSPhotoLibraryUsageDescription
53 | 当前程序将读取你的截图进行拼接
54 | UILaunchStoryboardName
55 | LaunchScreen
56 | UIMainStoryboardFile
57 | Main
58 | UIRequiredDeviceCapabilities
59 |
60 | armv7
61 |
62 | UISupportedInterfaceOrientations
63 |
64 | UIInterfaceOrientationPortrait
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetCheckmark.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 |
30 | /**
31 | * The check mark to show selected asset.
32 | */
33 | @interface CTAssetCheckmark : UIView
34 |
35 | #pragma mark Customizing Appearance
36 |
37 | /**
38 | * @name Customizing Appearance
39 | */
40 |
41 | /**
42 | * To set margin of the check mark from specific edges.
43 | *
44 | * @param margin The margin from the edges.
45 | * @param edgeX The layout attribute respresents vertical edge that the check mark pins to. Either `NSLayoutAttributeLeft` or `NSLayoutAttributeRight`.
46 | * @param edgeY The layout attribute respresents horizontal edge that the check mark pins to. Either `NSLayoutAttributeTop` or `NSLayoutAttributeBottom`.
47 | */
48 | - (void)setMargin:(CGFloat)margin forVerticalEdge:(NSLayoutAttribute)edgeX horizontalEdge:(NSLayoutAttribute)edgeY UI_APPEARANCE_SELECTOR;
49 |
50 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetCollectionViewCell.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 | #import "CTAssetThumbnailStacks.h"
30 |
31 |
32 |
33 | @interface CTAssetCollectionViewCell : UITableViewCell
34 |
35 | @property (nonatomic, strong, readonly) CTAssetThumbnailStacks *thumbnailStacks;
36 |
37 | @property (nonatomic, weak) UIFont *titleFont UI_APPEARANCE_SELECTOR;
38 | @property (nonatomic, strong) UIColor *titleTextColor UI_APPEARANCE_SELECTOR;
39 | @property (nonatomic, strong) UIColor *selectedTitleTextColor UI_APPEARANCE_SELECTOR;
40 |
41 | @property (nonatomic, weak) UIFont *countFont UI_APPEARANCE_SELECTOR;
42 | @property (nonatomic, strong) UIColor *countTextColor UI_APPEARANCE_SELECTOR;
43 | @property (nonatomic, strong) UIColor *selectedCountTextColor UI_APPEARANCE_SELECTOR;
44 |
45 | @property (nonatomic, strong) UIColor *accessoryColor UI_APPEARANCE_SELECTOR;
46 | @property (nonatomic, strong) UIColor *selectedAccessoryColor UI_APPEARANCE_SELECTOR;
47 |
48 | @property (nonatomic, weak) UIColor *selectedBackgroundColor UI_APPEARANCE_SELECTOR;
49 |
50 |
51 | - (instancetype)initWithThumbnailSize:(CGSize)size reuseIdentifier:(NSString *)reuseIdentifier;
52 | - (void)bind:(PHAssetCollection *)collection count:(NSUInteger)count;
53 |
54 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetCollectionViewController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetCollectionViewController : UITableViewController
30 |
31 | - (void)reloadUserInterface;
32 |
33 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetItemViewController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 |
30 |
31 |
32 | @interface CTAssetItemViewController : UIViewController
33 |
34 | @property (nonatomic, assign) BOOL allowsSelection;
35 | @property (nonatomic, strong, readonly) PHAsset *asset;
36 | @property (nonatomic, strong, readonly) UIImage *image;
37 |
38 | + (CTAssetItemViewController *)assetItemViewControllerForAsset:(PHAsset *)asset;
39 |
40 | - (void)playAsset:(id)sender;
41 | - (void)pauseAsset:(id)sender;
42 |
43 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetPlayButton.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetPlayButton : UIControl
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetScrollView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import "CTAssetItemViewController.h"
29 | #import "CTAssetPlayButton.h"
30 | #import "CTAssetSelectionButton.h"
31 |
32 |
33 |
34 |
35 | extern NSString * const CTAssetScrollViewDidTapNotification;
36 | extern NSString * const CTAssetScrollViewPlayerWillPlayNotification;
37 | extern NSString * const CTAssetScrollViewPlayerWillPauseNotification;
38 |
39 |
40 | @interface CTAssetScrollView : UIScrollView
41 |
42 | @property (nonatomic, assign) BOOL allowsSelection;
43 |
44 | @property (nonatomic, strong, readonly) UIImage *image;
45 | @property (nonatomic, strong, readonly) AVPlayer *player;
46 |
47 | @property (nonatomic, strong, readonly) UIImageView *imageView;
48 | @property (nonatomic, strong, readonly) CTAssetPlayButton *playButton;
49 | @property (nonatomic, strong, readonly) CTAssetSelectionButton *selectionButton;
50 |
51 |
52 | - (void)startActivityAnimating;
53 | - (void)stopActivityAnimating;
54 |
55 | - (void)setProgress:(CGFloat)progress;
56 |
57 | - (void)bind:(PHAsset *)asset image:(UIImage *)image requestInfo:(NSDictionary *)info;
58 | - (void)bind:(AVPlayerItem *)playerItem requestInfo:(NSDictionary *)info;
59 |
60 | - (void)updateZoomScalesAndZoom:(BOOL)zoom;
61 |
62 | - (void)playVideo;
63 | - (void)pauseVideo;
64 |
65 | @end
66 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetSelectionButton.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetSelectionButton : UIControl
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetThumbnailOverlay.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 |
30 |
31 | @interface CTAssetThumbnailOverlay : UIView
32 |
33 | - (void)bind:(PHAsset *)asset duration:(NSString *)duration;
34 | - (void)bind:(PHAssetCollection *)assetCollection;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetThumbnailStacks.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import "CTAssetThumbnailView.h"
29 |
30 | @interface CTAssetThumbnailStacks : UIView
31 |
32 | @property (nonatomic, assign) CGSize thumbnailSize;
33 | @property (nonatomic, copy, readonly) NSArray *thumbnailViews;
34 | @property (nonatomic, assign, readonly) UIEdgeInsets edgeInsets;
35 |
36 | - (CTAssetThumbnailView *)thumbnailAtIndex:(NSUInteger)index;
37 | - (void)setHighlighted:(BOOL)highlighted;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetThumbnailView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 |
30 |
31 | @interface CTAssetThumbnailView : UIView
32 |
33 | @property (nonatomic, assign) BOOL showsDuration;
34 | @property (nonatomic, strong) UIImage *backgroundImage;
35 |
36 | - (void)bind:(UIImage *)image asset:(PHAsset *)asset;
37 | - (void)bind:(UIImage *)image assetCollection:(PHAssetCollection *)assetCollection;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridSelectedView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2013 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsGridSelectedView : UIView
30 |
31 | @property (nonatomic, assign) BOOL showsSelectionIndex;
32 | @property (nonatomic, assign) NSUInteger selectionIndex;
33 |
34 | @property (nonatomic, weak) UIColor *selectedBackgroundColor UI_APPEARANCE_SELECTOR;
35 | @property (nonatomic, assign) CGFloat borderWidth UI_APPEARANCE_SELECTOR;
36 |
37 | @property (nonatomic, weak) UIFont *font UI_APPEARANCE_SELECTOR DEPRECATED_MSG_ATTRIBUTE("Use setTextAttributes: of CTAssetSelectionLabel instead.");
38 | @property (nonatomic, weak) UIColor *textColor UI_APPEARANCE_SELECTOR DEPRECATED_MSG_ATTRIBUTE("Use setTextAttributes: of CTAssetSelectionLabel instead.");
39 |
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsGridView : UIView
30 |
31 | @property (nonatomic, weak) UIColor *gridBackgroundColor UI_APPEARANCE_SELECTOR;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridView.m:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import "CTAssetsPickerDefines.h"
29 | #import "CTAssetsGridView.h"
30 |
31 | @interface CTAssetsGridView ()
32 |
33 | @property (nonatomic, assign) BOOL didSetupConstraints;
34 |
35 | @end
36 |
37 |
38 | @implementation CTAssetsGridView
39 |
40 | - (instancetype)initWithFrame:(CGRect)frame
41 | {
42 | if (self = [super initWithFrame:frame])
43 | {
44 | [self setupViews];
45 | }
46 |
47 | return self;
48 | }
49 |
50 |
51 | #pragma mark - Setup
52 |
53 | - (void)setupViews
54 | {
55 | self.backgroundColor = CTAssetsGridViewBackgroundColor;
56 | }
57 |
58 |
59 | #pragma mark - Apperance
60 |
61 | - (UIColor *)gridBackgroundColor
62 | {
63 | return self.backgroundColor;
64 | }
65 |
66 | - (void)setGridBackgroundColor:(UIColor *)backgroundColor
67 | {
68 | UIColor *color = (backgroundColor) ? (backgroundColor) : CTAssetsGridViewBackgroundColor;
69 | self.backgroundColor = color;
70 | }
71 |
72 |
73 | #pragma mark - Update auto layout constraints
74 |
75 | - (void)updateConstraints
76 | {
77 | if (!self.didSetupConstraints)
78 | {
79 | [self autoPinEdgesToSuperviewEdges];
80 | self.didSetupConstraints = YES;
81 | }
82 |
83 | [super updateConstraints];
84 | }
85 |
86 | @end
87 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridViewCell.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 | #import "CTAssetThumbnailView.h"
30 |
31 |
32 |
33 | @interface CTAssetsGridViewCell : UICollectionViewCell
34 |
35 | @property (nonatomic, assign, getter = isEnabled) BOOL enabled;
36 | @property (nonatomic, assign) BOOL showsSelectionIndex;
37 | @property (nonatomic, assign) NSUInteger selectionIndex;
38 |
39 | @property (nonatomic, weak) UIColor *disabledColor UI_APPEARANCE_SELECTOR;
40 | @property (nonatomic, weak) UIColor *highlightedColor UI_APPEARANCE_SELECTOR;
41 |
42 | - (void)bind:(PHAsset *)asset;
43 |
44 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridViewController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 |
30 |
31 | @class CTAssetsGridViewController;
32 |
33 |
34 |
35 | @protocol CTAssetsGridViewControllerDelegate
36 |
37 | - (void)assetsGridViewController:(CTAssetsGridViewController *)picker photoLibraryDidChangeForAssetCollection:(PHAssetCollection *)assetCollection;
38 |
39 | @end
40 |
41 |
42 |
43 | @interface CTAssetsGridViewController : UICollectionViewController
44 |
45 | @property (nonatomic, weak) id delegate;
46 | @property (nonatomic, strong) PHAssetCollection *assetCollection;
47 |
48 | @end
49 |
50 |
51 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridViewFooter.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 |
30 |
31 | @interface CTAssetsGridViewFooter : UICollectionReusableView
32 |
33 | @property (nonatomic, weak) UIFont *font UI_APPEARANCE_SELECTOR;
34 | @property (nonatomic, weak) UIColor *textColor UI_APPEARANCE_SELECTOR;
35 |
36 | - (void)bind:(PHFetchResult *)result;
37 |
38 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsGridViewLayout.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsGridViewLayout : UICollectionViewFlowLayout
30 |
31 | - (instancetype)initWithContentSize:(CGSize)contentSize traitCollection:(UITraitCollection *)traits;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsNavigationController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 bawn
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsNavigationController : UINavigationController
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPageView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsPageView : UIView
30 |
31 | @property (nonatomic, strong) UIColor *pageBackgroundColor UI_APPEARANCE_SELECTOR;
32 | @property (nonatomic, strong) UIColor *fullscreenBackgroundColor UI_APPEARANCE_SELECTOR;
33 |
34 | - (void)enterFullscreen;
35 | - (void)exitFullscreen;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPageViewController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import
29 |
30 |
31 |
32 |
33 |
34 | /**
35 | * A view controller that shows selected photos and vidoes from user's photo library that let the user navigate the item page by page.
36 | */
37 | @interface CTAssetsPageViewController : UIPageViewController
38 |
39 | /**
40 | * The index of the photo or video with the currently showing item.
41 | */
42 | @property (nonatomic, assign) NSInteger pageIndex;
43 |
44 |
45 | /**
46 | * @name Creating a Assets Page View Controller
47 | */
48 |
49 | /**
50 | * Initializes a newly created view controller with a fetech result.
51 | *
52 | * @param fetchResult A fetch result of `PHAsset` objects.
53 | *
54 | * @return An instance of `CTAssetPageViewController` initialized to show the asset items in `fetchResult`.
55 | */
56 | - (instancetype)initWithFetchResult:(PHFetchResult *)fetchResult;
57 |
58 | /**
59 | * Initializes a newly created view controller with an array of assets.
60 | *
61 | * @param assets An array of `PHAsset` objects.
62 | *
63 | * @return An instance of `CTAssetPageViewController` initialized to show the asset items in `assets`.
64 | */
65 | - (instancetype)initWithAssets:(NSArray *)assets;
66 |
67 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerAccessDeniedView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsPickerAccessDeniedView : UIView
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/AccessDeniedViewLock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/AccessDeniedViewLock.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/AccessDeniedViewLock@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/AccessDeniedViewLock@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/AccessDeniedViewLock@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/AccessDeniedViewLock@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeAllPhotos@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeAllPhotos@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeAllPhotos@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeAllPhotos@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeBurst@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeBurst@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeBurst@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeBurst@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeFavorites@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeFavorites@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeFavorites@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeFavorites@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeLastImport@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeLastImport@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeLastImport@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeLastImport@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgePanorama@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgePanorama@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgePanorama@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgePanorama@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeRecentlyDeleted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeRecentlyDeleted@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeRecentlyDeleted@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeRecentlyDeleted@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeScreenshots@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeScreenshots@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeScreenshots@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeScreenshots@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSelfPortraits@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSelfPortraits@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSelfPortraits@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSelfPortraits@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSloMoSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSloMoSmall.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSloMoSmall@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSloMoSmall@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSloMoSmall@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSloMoSmall@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSlomo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSlomo@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSlomo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeSlomo@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapse@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapse@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapse@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapse@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapseSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapseSmall.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapseSmall@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapseSmall@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapseSmall@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeTimelapseSmall@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideo@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideo@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideoSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideoSmall.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideoSmall@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideoSmall@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideoSmall@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/BadgeVideoSmall@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/Checkmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/Checkmark.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/Checkmark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/Checkmark@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/Checkmark@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/Checkmark@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkShadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkShadow.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkShadow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkShadow@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkShadow@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkShadow@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkUnselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkUnselected.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkUnselected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkUnselected@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkUnselected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/CheckmarkUnselected@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/DisclosureArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/DisclosureArrow.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/DisclosureArrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/DisclosureArrow@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/DisclosureArrow@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/DisclosureArrow@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridDisabledAsset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridDisabledAsset.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridDisabledAsset@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridDisabledAsset@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridDisabledAsset@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridDisabledAsset@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbum.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbum@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbum@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbum@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbum@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbumShared.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbumShared.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbumShared@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbumShared@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbumShared@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyAlbumShared@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyCameraRoll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyCameraRoll.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyCameraRoll@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyCameraRoll@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyCameraRoll@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridEmptyCameraRoll@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridGradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridGradient.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridGradient@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridGradient@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridGradient@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridGradient@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridHiddenAlbum@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridHiddenAlbum@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridHiddenAlbum@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/GridHiddenAlbum@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PauseButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PauseButton.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PauseButton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PauseButton@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PauseButton@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PauseButton@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PlayButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PlayButton.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PlayButton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PlayButton@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PlayButton@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/PlayButton@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayButtonMask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayButtonMask.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayButtonMask@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayButtonMask@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayButtonMask@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayButtonMask@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayGlyphMask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayGlyphMask.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayGlyphMask@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayGlyphMask@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayGlyphMask@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/VideoPlayGlyphMask@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/ar.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "إلغاء";
3 | "Done" = "تم";
4 |
5 | /* Default title */
6 | "Photos" = "الصور";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "تم تحديد %@ صورة";
10 | "%@ Photos Selected" = "تم تحديد %@ صور";
11 | "%@ Video Selected" = "تم تحديد %@ فيديو";
12 | "%@ Videos Selected" = "تم تحديد %@ فيديوهات";
13 | "%@ Items Selected" = "تم تحديد %@ عناصر";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ صور";
17 | "%@ Videos" = "%@ فيديوهات";
18 | "%@ Photos, %@ Videos" = "%@ صور، %@ فيديو";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%@ من %@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "لا يحق لهذا التطبيق الوصول إلى صورك أو فيديوهاتك.";
25 | "You can enable access in Privacy Settings." = "يمكن تفعيل الوصول من إعدادات الخصوصية.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "لا توجد صور أو فيديوهات";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "يمكنك التقاط الصور والفيديوهات باستخدام الكاميرا، أو مزامنة الصورة والفيديوهات مع %@ الخاص بك.\nباستخدام iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "يمكنك مزامنة الصورة والفيديوهات مع %@ الخاص بك.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "تشغيل";
36 | "Select" = "حدد";
37 | "Deselect" = "إلغاء";
38 |
39 | /* Video duration spell out */
40 | "hours" = "ساعات";
41 | "hour" = "ساعة";
42 | "minutes" = "دقائق";
43 | "minute" = "دقيقة";
44 | "seconds" = "ثواني";
45 | "second" = "ثانية";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/da.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Fortryd";
3 | "Done" = "Færdig";
4 |
5 | /* Default title */
6 | "Photos" = "Billeder";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Billed valgt";
10 | "%@ Photos Selected" = "%@ Billeder valgt";
11 | "%@ Video Selected" = "%@ Video valgt";
12 | "%@ Videos Selected" = "%@ Videoer valgt";
13 | "%@ Items Selected" = "%@ Emner valgt";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Billeder";
17 | "%@ Videos" = "%@ Videoer";
18 | "%@ Photos, %@ Videos" = "%1$@ Billeder, %2$@ Videoer";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ af %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Denne app har ikke adgangs til dine billeder eller videoer.";
25 | "You can enable access in Privacy Settings." = "Du kan tildele adgang under Privatlivs indstillinger.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Ingen billeder eller videoer";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Du kan tage billeder med kameraet, eller synkronisere billeder og videoer til din %@\nmed iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Du kan synkronisere billeder eller videoer til din %@ med iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Afspil";
36 | "Select" = "Vælg";
37 | "Deselect" = "Fravælg";
38 |
39 | /* Video duration spell out */
40 | "hours" = "timer";
41 | "hour" = "time";
42 | "minutes" = "minutter";
43 | "minute" = "minut";
44 | "seconds" = "sekunder";
45 | "second" = "sekund";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Kan ikke afspille video streaming";
49 | "OK" = "OK";
50 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/de.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Abbrechen";
3 | "Done" = "Fertig";
4 |
5 | /* Default title */
6 | "Photos" = "Fotos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Foto ausgewählt";
10 | "%@ Photos Selected" = "%@ Fotos ausgewählt";
11 | "%@ Video Selected" = "%@ Video ausgewählt";
12 | "%@ Videos Selected" = "%@ Videos ausgewählt";
13 | "%@ Items Selected" = "%@ Objekte ausgewählt";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Fotos";
17 | "%@ Videos" = "%@ Videos";
18 | "%@ Photos, %@ Videos" = "%1$@ Fotos, %2$@ Videos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ von %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Diese App darf nicht auf Ihr Fotoalbum zugreifen.";
25 | "You can enable access in Privacy Settings." = "Sie können den Zugriff in den Datenschutz Einstellungen erlauben.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Keine Fotos oder Videos vorhanden";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Sie können Fotos oder Videos mit der Kamera aufnehmen oder Ihr %@\nmit iTunes synchronisieren.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Sie können Fotos und Videos mit iTunes auf Ihr %@ synchronisieren.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Wiedergeben";
36 | "Select" = "Wählen Sie";
37 | "Deselect" = "Markierung entfernen";
38 |
39 | /* Video duration spell out */
40 | "hours" = "Stunden";
41 | "hour" = "Stunde";
42 | "minutes" = "Minuten";
43 | "minute" = "Minute";
44 | "seconds" = "Sekunden";
45 | "second" = "Sekunde";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Video kann nicht wiedergegeben werden";
49 | "OK" = "OK";
50 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/en.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Cancel";
3 | "Done" = "Done";
4 |
5 | /* Default title */
6 | "Photos" = "Photos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Photo Selected";
10 | "%@ Photos Selected" = "%@ Photos Selected";
11 | "%@ Video Selected" = "%@ Video Selected";
12 | "%@ Videos Selected" = "%@ Videos Selected";
13 | "%@ Items Selected" = "%@ Items Selected";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Photos";
17 | "%@ Videos" = "%@ Videos";
18 | "%@ Photos, %@ Videos" = "%1$@ Photos, %2$@ Videos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ of %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "This app does not have access to your photos or videos.";
25 | "You can enable access in Privacy Settings." = "You can enable access in Privacy Settings.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "No Photos or Videos";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "You can sync photos and videos onto your %@ using iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Play";
36 | "Select" = "Select";
37 | "Deselect" = "Deselect";
38 |
39 | /* Video duration spell out */
40 | "hours" = "hours";
41 | "hour" = "hour";
42 | "minutes" = "minutes";
43 | "minute" = "minute";
44 | "seconds" = "seconds";
45 | "second" = "second";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/es-MX.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Cancela";
3 | "Done" = "OK";
4 |
5 | /* Default title */
6 | "Photos" = "Fotos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Foto seleccionada";
10 | "%@ Photos Selected" = "%@ Fotos seleccionadas";
11 | "%@ Video Selected" = "%@ Video seleccionado";
12 | "%@ Videos Selected" = "%@ Videos seleccionados";
13 | "%@ Items Selected" = "%@ Objetos seleccionados";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Fotos";
17 | "%@ Videos" = "%@ Videos";
18 | "%@ Photos, %@ Videos" = "%@ Fotos, %@ Videos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%@ de %@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "La aplicación no tiene acceso a tus fotos o videos.";
25 | "You can enable access in Privacy Settings." = "Puedes acceder en Ajustes/Privacidad.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Ni fotos ni videos";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Puedes tomar fotos y videos utilizando la cámara, o sincronizarlas con tu %@ con iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Puedes sincronizar las fotos y videos en tu %@ con iTunes";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Reproducir";
36 | "Select" = "Select";
37 | "Deselect" = "Deselect";
38 |
39 | /* Video duration spell out */
40 | "hours" = "horas";
41 | "hour" = "hora";
42 | "minutes" = "minutos";
43 | "minute" = "minuto";
44 | "seconds" = "segundos";
45 | "second" = "segundo";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/es.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Cancelar";
3 | "Done" = "Hecho";
4 |
5 | /* Default title */
6 | "Photos" = "Fotos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ foto seleccionada";
10 | "%@ Photos Selected" = "%@ fotos seleccionadas";
11 | "%@ Video Selected" = "%@ vídeo seleccionado";
12 | "%@ Videos Selected" = "%@ vídeos seleccionados";
13 | "%@ Items Selected" = "%@ objetos seleccionados";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ fotos";
17 | "%@ Videos" = "%@ vídeos";
18 | "%@ Photos, %@ Videos" = "%1$@ fotos, %2$@ vídeos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ de %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Esta aplicación no tiene acceso a tus fotos o vídeos.";
25 | "You can enable access in Privacy Settings." = "Puedes habilitar el acceso en los ajustes de privacidad.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "No hay fotos ni vídeos";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Puedes tomar fotos y vídeos con la cámara o sincronizar fotos y vídeos en tu %@\na través de iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Puedes sincronizar fotos y vídeos en tu %@ a través de iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Reproducir";
36 | "Select" = "Seleccione";
37 | "Deselect" = "Deseleccionar";
38 |
39 | /* Video duration spell out */
40 | "hours" = "horas";
41 | "hour" = "hora";
42 | "minutes" = "minutos";
43 | "minute" = "minuto";
44 | "seconds" = "segundos";
45 | "second" = "segundo";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/fi.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Kumoa";
3 | "Done" = "Valmis";
4 |
5 | /* Default title */
6 | "Photos" = "Kuvat";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ kuva valittu";
10 | "%@ Photos Selected" = "%@ kuvaa valittu";
11 | "%@ Video Selected" = "%@ video valittu";
12 | "%@ Videos Selected" = "%@ videota valittu";
13 | "%@ Items Selected" = "%@ kohdetta valittu";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ kuvaa";
17 | "%@ Videos" = "%@ videota";
18 | "%@ Photos, %@ Videos" = "%1$@ kuvaa, %2$@ videota";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ / %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Sovelluksella ei ole pääsyä kuviin tai videoihin.";
25 | "You can enable access in Privacy Settings." = "Voit sallia pääsyn Asetukset-valikossa.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Ei kuvia tai videoita";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Voit ottaa kuvia ja videokuvata kameralla tai synkroinoida iTunesin avulla kuvia ja videoita %@en.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Voit synkroinoida iTunesin avulla kuvia ja videoita %@en.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Toista";
36 | "Select" = "Valitse";
37 | "Deselect" = "Poista";
38 |
39 | /* Video duration spell out */
40 | "hours" = "tuntia";
41 | "hour" = "tunti";
42 | "minutes" = "minuuttia";
43 | "minute" = "minuutti";
44 | "seconds" = "sekuntia";
45 | "second" = "sekunti";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/fr.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Annuler";
3 | "Done" = "Valider";
4 |
5 | /* Default title */
6 | "Photos" = "Photos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ photo selectionée";
10 | "%@ Photos Selected" = "%@ photos sélectionnées";
11 | "%@ Video Selected" = "%@ vidéo sélectionnée";
12 | "%@ Videos Selected" = "%@ vidéos sélectionnées";
13 | "%@ Items Selected" = "%@ éléments sélectionnés";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Photos";
17 | "%@ Videos" = "%@ Vidéos";
18 | "%@ Photos, %@ Videos" = "%1$@ Photos, %2$@ Vidéos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ sur %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Cette application n'a pas accès à vos photos et vos vidéos.";
25 | "You can enable access in Privacy Settings." = "Vous pouvez autoriser l'accès dans l'application Réglages > Confidentialité.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Pas de Photos ou Vidéos";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Vous pouvez prendre des photos et des vidéos en utilisant l'appareil ou synchroniser vos photos et vidéos sur %@\n avec iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Vous pouvez synchroniser vos photos et vidéos sur %@ avec iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Lire";
36 | "Select" = "Sélectionner";
37 | "Deselect" = "Désélectionner";
38 |
39 | /* Video duration spell out */
40 | "hours" = "heures";
41 | "hour" = "heure";
42 | "minutes" = "minutes";
43 | "minute" = "minute";
44 | "seconds" = "secondes";
45 | "second" = "seconde";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Impossible de lire le flux vidéo";
49 | "OK" = "OK";
50 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/he.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "ביטול";
3 | "Done" = "סיום";
4 |
5 | /* Default title */
6 | "Photos" = "תמונות";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "נבחרה תמונה %@";
10 | "%@ Photos Selected" = "נבחרו %@ תמונות";
11 | "%@ Video Selected" = "נבחר וידאו %@";
12 | "%@ Videos Selected" = "נבחרו %@ סרטוני וידאו";
13 | "%@ Items Selected" = "נבחרו %@ פריטים";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ תמונות";
17 | "%@ Videos" = "%@ סרטוני וידאו";
18 | "%@ Photos, %@ Videos" = "%1$@ תמונות, %2$@ סרטוני וידאו";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ מ-%2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "לאפליקציה הזו אין גישה לתמונות ולסרטוני הוידאו שלך.";
25 | "You can enable access in Privacy Settings." = "באפשרותך לאפשר גישה בהגדרות הפרטיות.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "אין תמונות או סרטוני וידאו";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "באפשרותך לצלם תמונות ולהקליט וידאו בעזרת המצלמה או לסנכרן תמונות וסרטוני וידאו עם %@\nבאמצעות ב-iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "באפשרותך לסנכרן תמונות וסרטוני וידאו עם %@ באמצעות iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "הפעלה";
36 | "Select" = "בחר";
37 | "Deselect" = "בטלו את הבחירה";
38 |
39 | /* Video duration spell out */
40 | "hours" = "שעות";
41 | "hour" = "שעה";
42 | "minutes" = "דקות";
43 | "minute" = "דקה";
44 | "seconds" = "שניות";
45 | "second" = "שנייה";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/hi-IN.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "रद्द करें";
3 | "Done" = "पूर्ण हुआ";
4 |
5 | /* Default title */
6 | "Photos" = "चित्र";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ चित्र चयनित";
10 | "%@ Photos Selected" = "%@ चित्र चयनित";
11 | "%@ Video Selected" = "%@ वीडियो चयनित";
12 | "%@ Videos Selected" = "%@ वीडियो चयनित";
13 | "%@ Items Selected" = "%@ आइटम चयनित";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ चित्र";
17 | "%@ Videos" = "%@ वीडियो";
18 | "%@ Photos, %@ Videos" = "%1$@ चित्र, %2$@ वीडियो";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%2$@ में से %1$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "यह ऐप आपके चित्रों या वीडियो तक नहीं पहुंच सकता।";
25 | "You can enable access in Privacy Settings." = "आप निजता सेटिंग्स में पहुंच सक्षम कर सकते हैं।";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "कोई चित्र या वीडियो नहीं";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "आप कैमरा का उपयोग करके चित्र या वीडियो ले सकते हैं, अथवा iTunes का उपयोग करके चित्र या वीडियो अपने %@ पर सिंक\nकर सकते हैं।";
32 | "You can sync photos and videos onto your %@ using iTunes." = "आप iTunes का उपयोग करके अपने %@ पर चित्र और वीडियो सिंक कर सकते हैं।";
33 |
34 | /* Accessibility labels */
35 | "Play" = "चलाएं";
36 | "Select" = "चुनना";
37 | "Deselect" = "चयन रद्द करें";
38 |
39 | /* Video duration spell out */
40 | "hours" = "घंटे";
41 | "hour" = "घंटा";
42 | "minutes" = "मिनट";
43 | "minute" = "मिनट";
44 | "seconds" = "सेकंड";
45 | "second" = "सेकंड";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/hu.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Mégsem";
3 | "Done" = "Kész";
4 |
5 | /* Default title */
6 | "Photos" = "Fotók";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ fotó kiválasztva";
10 | "%@ Photos Selected" = "%@ fotó kiválasztva";
11 | "%@ Video Selected" = "%@ videó kiválasztva";
12 | "%@ Videos Selected" = "%@ videó kiválasztva";
13 | "%@ Items Selected" = "%@ elem kiválasztva";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Fotó";
17 | "%@ Videos" = "%@ Videó";
18 | "%@ Photos, %@ Videos" = "%1$@ Fotó, %2$@ Videó";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ / %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Ez az alkalmazás nem fér hozzá a fotóidhoz vagy a videóidhoz.";
25 | "You can enable access in Privacy Settings." = "Engedélyezheted a hozzáférést az Adatvédelmi beállításokban.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Nincsenek fotók vagy videók";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Képeket és videókat készíthetsz a készülék kamerájával, vagy szinkronizáld a fotóidat és a videóidat %@\n-ra iTunes-szal.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Szinkronizálhatod a fotóidat és a videóidat a %@-ra iTunes-szal.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Lejátszás";
36 |
37 | /* Video duration spell out */
38 | "hours" = "óra";
39 | "hour" = "óra";
40 | "minutes" = "perc";
41 | "minute" = "perc";
42 | "seconds" = "másodperc";
43 | "second" = "másodperc";
44 |
45 | /* Error message of playing stream video */
46 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
47 | "OK" = "OK";
48 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/id.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Batal";
3 | "Done" = "Selesai";
4 |
5 | /* Default title */
6 | "Photos" = "Foto";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Foto Terpilih";
10 | "%@ Photos Selected" = "%@ Foto Terpilih";
11 | "%@ Video Selected" = "%@ Video Terpilih";
12 | "%@ Videos Selected" = "%@ Video Terpilih";
13 | "%@ Items Selected" = "%@ Item Terpilih";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Foto";
17 | "%@ Videos" = "%@ Video";
18 | "%@ Photos, %@ Videos" = "%1$@ Foto, %2$@ Video";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ dari %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Aplikasi ini tidak memiliki akses ke foto atau videomu.";
25 | "You can enable access in Privacy Settings." = "Kamu bisa mengaktifkan akses di Setelan Privasi.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Tidak ada Foto atau Video";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Kamu bisa mengambil foto dan video menggunakan kamera, atau menyinkronkan foto dan video ke %@\nmenggunakan iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Kamu bisa menyinkronkan foto dan video ke %@ menggunakan iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Putar";
36 | "Select" = "Memilih";
37 | "Deselect" = "Hapus";
38 |
39 | /* Video duration spell out */
40 | "hours" = "jam";
41 | "hour" = "jam";
42 | "minutes" = "menit";
43 | "minute" = "menit";
44 | "seconds" = "detik";
45 | "second" = "detik";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/it.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Annulla";
3 | "Done" = "Fatto";
4 |
5 | /* Default title */
6 | "Photos" = "Foto";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ foto selezionata";
10 | "%@ Photos Selected" = "%@ foto selezionate";
11 | "%@ Video Selected" = "%@ video selezionato";
12 | "%@ Videos Selected" = "%@ video selezionati";
13 | "%@ Items Selected" = "%@ oggetto selezionato";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ foto";
17 | "%@ Videos" = "%@ video";
18 | "%@ Photos, %@ Videos" = "%1$@ foto, %2$@ video";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ di %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Questa app non ha accesso alle tue foto o ai tuoi video.";
25 | "You can enable access in Privacy Settings." = "Puoi attivare l'accesso nelle Impostazioni sulla privacy.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Nessuna foto o video";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Puoi scattare foto e registrare video con la fotocamera oppure sincronizzandoli sul tuo %@\ncon iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Puoi sincronizzare foto e video sul tuo %@ con iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Riproduci";
36 | "Select" = "Selezionare";
37 | "Deselect" = "Deseleziona";
38 |
39 | /* Video duration spell out */
40 | "hours" = "ore";
41 | "hour" = "ora";
42 | "minutes" = "minuti";
43 | "minute" = "minuto";
44 | "seconds" = "secondi";
45 | "second" = "secondo";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/ja.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "キャンセル";
3 | "Done" = "完了";
4 |
5 | /* Default title */
6 | "Photos" = "写真";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ 枚の写真が選択されました";
10 | "%@ Photos Selected" = "%@ 枚の写真が選択されました";
11 | "%@ Video Selected" = "%@ 件の動画が選択されました";
12 | "%@ Videos Selected" = "%@ 件の動画が選択されました";
13 | "%@ Items Selected" = "%@ 個のアイテムが選択されました";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ 枚の写真";
17 | "%@ Videos" = "%@ 件の動画";
18 | "%@ Photos, %@ Videos" = "%1$@ 枚の写真、%2$@ 件の動画";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ / %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "このアプリはあなたの写真と動画へアクセスする許可を得ていません。";
25 | "You can enable access in Privacy Settings." = "「プライバシー設定」からアクセスを許可できます。";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "写真または動画がありません";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "カメラを使用して写真または動画を撮影するか、ご利用の%@へ写真と動画を同期することができます。\n同期はiTunes を使用して行えます。";
32 | "You can sync photos and videos onto your %@ using iTunes." = "iTunes を使用して、ご利用の%@へ写真と動画を同期することができます。";
33 |
34 | /* Accessibility labels */
35 | "Play" = "再生";
36 | "Select" = "選択";
37 | "Deselect" = "選択を解除";
38 |
39 | /* Video duration spell out */
40 | "hours" = "時間";
41 | "hour" = "時間";
42 | "minutes" = "分";
43 | "minute" = "分";
44 | "seconds" = "秒";
45 | "second" = "秒";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "ストリーム動画が再生できません";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/ko.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "취소";
3 | "Done" = "완료";
4 |
5 | /* Default title */
6 | "Photos" = "사진";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "사진 %@개 선택됨";
10 | "%@ Photos Selected" = "사진 %@개 선택됨";
11 | "%@ Video Selected" = "동영상 %@개 선택됨";
12 | "%@ Videos Selected" = "동영상 %@개 선택됨";
13 | "%@ Items Selected" = "%@개의 항목 선택됨";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "사진 %@개";
17 | "%@ Videos" = "동영상 %@개";
18 | "%@ Photos, %@ Videos" = "사진 %1$@개, 동영상 %2$@ 개";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@/%2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "이 앱은 귀하의 사진이나 동영상에 접근 권한이 없습니다.";
25 | "You can enable access in Privacy Settings." = "개인정보 설정에서 접근을 활성화할 수 있습니다.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "사진이나 동영상 없음";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "카메라를 사용해서 사진 및 동영상을 가져오거나 iTunes를 사용하여 %@에서 사진 및 동영상을 동기화할 수\n있습니다.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "iTunes를 사용하여 %@에서 사진 및 동영상을 동기화할 수 있습니다.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "플레이";
36 | "Select" = "선택";
37 | "Deselect" = "선택 해제";
38 |
39 | /* Video duration spell out */
40 | "hours" = "시간";
41 | "hour" = "시간";
42 | "minutes" = "분";
43 | "minute" = "분";
44 | "seconds" = "초";
45 | "second" = "초";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/nl-NL.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Annuleren";
3 | "Done" = "Gereed";
4 |
5 | /* Default title */
6 | "Photos" = "Foto's";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ foto geselecteerd";
10 | "%@ Photos Selected" = "%@ foto's geselecteerd";
11 | "%@ Video Selected" = "%@ video geselecteerd";
12 | "%@ Videos Selected" = "%@ video's geselecteerd";
13 | "%@ Items Selected" = "%@ items geselecteerd";
14 |
15 | /* Album's footer */
16 | "%@ Photos" = "%@ Foto's";
17 | "%@ Videos" = "%@ Video's";
18 | "%@ Photos, %@ Videos" = "%1$@ Foto's, %2$@ Videos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ op %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Deze App heeft geen toegang tot je foto's en video's.";
25 | "You can enable access in Privacy Settings." = "Je kan de applicatie toegang verlenen via Instellingen > Privacy.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Geen foto's of video's";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Je kunt foto's of video's nemen met je camera, of door je foto's en video's te synchroniseren met je %@n in iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Je kunt foto's en video's synchroniseren met je %@ in iTunes";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Lezen";
36 | "Select" = "Select";
37 | "Deselect" = "Deselecteren";
38 |
39 | /* Video duration spell out */
40 | "hours" = "uren";
41 | "hour" = "uur";
42 | "minutes" = "minuten";
43 | "minute" = "minuut";
44 | "seconds" = "seconden";
45 | "second" = "seconde";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Kan video stream niet afspelen";
49 | "OK" = "OK";
50 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/nl.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Annuleren";
3 | "Done" = "Gereed";
4 |
5 | /* Default title */
6 | "Photos" = "Foto's";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ foto geselecteerd";
10 | "%@ Photos Selected" = "%@ foto's geselecteerd";
11 | "%@ Video Selected" = "%@ video geselecteerd";
12 | "%@ Videos Selected" = "%@ video's geselecteerd";
13 | "%@ Items Selected" = "%@ items geselecteerd";
14 |
15 | /* Album's footer */
16 | "%@ Photos" = "%@ Foto's";
17 | "%@ Videos" = "%@ Video's";
18 | "%@ Photos, %@ Videos" = "%1$@ Foto's, %2$@ Videos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ op %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Deze App heeft geen toegang tot je foto's en video's.";
25 | "You can enable access in Privacy Settings." = "Je kan de applicatie toegang verlenen via Instellingen > Privacy.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Geen foto's of video's";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Je kunt foto's of video's nemen met je camera, of door je foto's en video's te synchroniseren met je %@n in iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Je kunt foto's en video's synchroniseren met je %@ in iTunes";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Lezen";
36 | "Select" = "Select";
37 | "Deselect" = "Deselecteren";
38 |
39 | /* Video duration spell out */
40 | "hours" = "uren";
41 | "hour" = "uur";
42 | "minutes" = "minuten";
43 | "minute" = "minuut";
44 | "seconds" = "seconden";
45 | "second" = "seconde";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Kan video stream niet afspelen";
49 | "OK" = "OK";
50 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/pt-PT.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Cancelar";
3 | "Done" = "Fechar";
4 |
5 | /* Default title */
6 | "Photos" = "Fotos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Foto selecionada";
10 | "%@ Photos Selected" = "%@ Fotos selecionadas";
11 | "%@ Video Selected" = "%@ Video selecionado";
12 | "%@ Videos Selected" = "%@ Videos selecionados";
13 | "%@ Items Selected" = "%@ Items selecionados";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Fotos";
17 | "%@ Videos" = "%@ Vídeos";
18 | "%@ Photos, %@ Videos" = "%@ Fotos, %@ Vídeos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%@ de %@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Esta app não tem acesso às suas fotos ou vídeos.";
25 | "You can enable access in Privacy Settings." = "Pode dar acesso nas configurações de privacidade.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Sem fotos ou vídeos";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Você pode tirar fotos e vídeos com a sua câmera, ou sincronizar fotos e vídeos para o seu %@ usando o iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Pode sincronizar fotos e vídeos para o seu %@ usando o iTunes";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Reproduzir";
36 | "Select" = "Selecionar";
37 | "Deselect" = "Desmarque";
38 |
39 | /* Video duration spell out */
40 | "hours" = "horas";
41 | "hour" = "hora";
42 | "minutes" = "minutos";
43 | "minute" = "minuto";
44 | "seconds" = "segundos";
45 | "second" = "segundo";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/pt.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Cancelar";
3 | "Done" = "Concluir";
4 |
5 | /* Default title */
6 | "Photos" = "Fotos";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ Foto selecionada";
10 | "%@ Photos Selected" = "%@ Fotos selecionadas";
11 | "%@ Video Selected" = "%@ Video selecionado";
12 | "%@ Videos Selected" = "%@ Videos selecionados";
13 | "%@ Items Selected" = "%@ Items selecionados";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ Fotos";
17 | "%@ Videos" = "%@ Vídeos";
18 | "%@ Photos, %@ Videos" = "%@ Fotos, %@ Vídeos";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%@ de %@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Este aplicativo não possui acesso a suas fotos e vídeos.";
25 | "You can enable access in Privacy Settings." = "Você pode autorizar este acesso em Ajustes > Privacidade > Fotos.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Nenhuma Foto ou Vídeo";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Você pode tirar fotos e vídeos com a sua câmera, ou sincronizar fotos e vídeos para o seu %@ usando o iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Pode sincronizar fotos e vídeos para o seu %@ usando o iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Reproduzir";
36 | "Select" = "Selecionar";
37 | "Deselect" = "Desmarque";
38 |
39 | /* Video duration spell out */
40 | "hours" = "horas";
41 | "hour" = "hora";
42 | "minutes" = "minutos";
43 | "minute" = "minuto";
44 | "seconds" = "segundos";
45 | "second" = "segundo";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/ru.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Отмена";
3 | "Done" = "Готово";
4 |
5 | /* Default title */
6 | "Photos" = "Фотографии";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "выбрана %@ фотография";
10 | "%@ Photos Selected" = "выбрано %@ фотографий";
11 | "%@ Video Selected" = "выбрано %@ видео";
12 | "%@ Videos Selected" = "выбрано %@ видео";
13 | "%@ Items Selected" = "выбрано %@ элементов";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ фотографий";
17 | "%@ Videos" = "%@ видео";
18 | "%@ Photos, %@ Videos" = "%1$@ фотографий, %2$@ видео";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ из %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "У этого приложения нет доступа к вашим фотографиям и видео.";
25 | "You can enable access in Privacy Settings." = "Вы можете включить доступ приложению в Настройках конфиденциальности.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Нет фотографий и видео";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Вы можете сделать фотографии или снять видео при помощи камеры либо синхронизировать фотографии и видео со своим %@\nчерез iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Вы можете синхронизировать фотографии и видео со своим %@ при помощи iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Воспр.";
36 | "Select" = "Выбрать";
37 | "Deselect" = "Снимите";
38 |
39 | /* Video duration spell out */
40 | "hours" = "часов";
41 | "hour" = "час";
42 | "minutes" = "минут";
43 | "minute" = "минута";
44 | "seconds" = "секунд";
45 | "second" = "секунда";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Cannot Play Stream Video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/sv.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "Avbryt";
3 | "Done" = "Klar";
4 |
5 | /* Default title */
6 | "Photos" = "Foton";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "%@ foto valt";
10 | "%@ Photos Selected" = "%@ foton valda";
11 | "%@ Video Selected" = "%@ video vald";
12 | "%@ Videos Selected" = "%@ videor valda";
13 | "%@ Items Selected" = "%@ artiklar valda";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ foton";
17 | "%@ Videos" = "%@ videor";
18 | "%@ Photos, %@ Videos" = "%1$@ foton, %2$@ videor";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@ av %2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "Denna app har inte tillgång till dina foton eller videor.";
25 | "You can enable access in Privacy Settings." = "Du kan aktivera tillgång i Integritetsinställningarna.";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "Inga foton eller videor";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Du kan ta foton och videor med kameran, eller synka foton och videor in i din %@ med hjälp av iTunes.";
32 | "You can sync photos and videos onto your %@ using iTunes." = "Du kan synka foton och videor in i din %@ med hjälp av iTunes.";
33 |
34 | /* Accessibility labels */
35 | "Play" = "Spela upp";
36 | "Select" = "Välj";
37 | "Deselect" = "Nollställ";
38 |
39 | /* Video duration spell out */
40 | "hours" = "timmar";
41 | "hour" = "timme";
42 | "minutes" = "minuter";
43 | "minute" = "minut";
44 | "seconds" = "sekunder";
45 | "second" = "sekund";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "Kan inte spela upp video";
49 | "OK" = "OK";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/zh-Hans.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "取消";
3 | "Done" = "完成";
4 |
5 | /* Default title */
6 | "Photos" = "照片";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "已选择%@张照片";
10 | "%@ Photos Selected" = "已选择%@张照片";
11 | "%@ Video Selected" = "已选择%@个视频";
12 | "%@ Videos Selected" = "已选择%@个视频";
13 | "%@ Items Selected" = "已选择%@项";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@张照片";
17 | "%@ Videos" = "%@个视频";
18 | "%@ Photos, %@ Videos" = "%1$@张照片,%2$@个视频";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@,共%2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "此应用程序对您的照片或视频没有访问权。";
25 | "You can enable access in Privacy Settings." = "您可以在隐私设置中启用访问权。";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "无照片或视频";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "您可以使用摄像头拍摄照片和视频,或使用iTunes将照片和视频同步到您的%@上。\n";
32 | "You can sync photos and videos onto your %@ using iTunes." = "您可以使用iTunes将照片和视频同步到您的%@上。";
33 |
34 | /* Accessibility labels */
35 | "Play" = "播放";
36 | "Select" = "选择";
37 | "Deselect" = "取消选择";
38 |
39 | /* Video duration spell out */
40 | "hours" = "小时";
41 | "hour" = "小时";
42 | "minutes" = "分钟";
43 | "minute" = "分钟";
44 | "seconds" = "秒";
45 | "second" = "秒";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "无法播放影片";
49 | "OK" = "好";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerController.bundle/zh-Hant.lproj/CTAssetsPicker.strings:
--------------------------------------------------------------------------------
1 | /* Navigation bar buttons */
2 | "Cancel" = "取消";
3 | "Done" = "完成";
4 |
5 | /* Default title */
6 | "Photos" = "照片";
7 |
8 | /* No. of selected */
9 | "%@ Photo Selected" = "已選取 %@ 張照片";
10 | "%@ Photos Selected" = "已選取 %@ 張照片";
11 | "%@ Video Selected" = "已選取 %@ 部影片";
12 | "%@ Videos Selected" = "已選取 %@ 部影片";
13 | "%@ Items Selected" = "已選取 %@ 個項目";
14 |
15 | /* Grid view footer */
16 | "%@ Photos" = "%@ 張照片";
17 | "%@ Videos" = "%@ 部影片";
18 | "%@ Photos, %@ Videos" = "%1$@ 張照片、%2$@ 部影片";
19 |
20 | /* Assets index */
21 | "%@ of %@" = "%1$@/%2$@";
22 |
23 | /* Messages if privacy is not granted */
24 | "This app does not have access to your photos or videos." = "此 App 無法取用您的照片或影片。";
25 | "You can enable access in Privacy Settings." = "您可以在「隱私權設定」中啟用存取。";
26 |
27 | /* Messages if no assets */
28 | "No Photos or Videos" = "沒有照片或影片";
29 |
30 | /* The parameter will be replaced by the device model name */
31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "您可以用相機拍照錄影或用 iTunes\n將照片和影片同步到 %@。";
32 | "You can sync photos and videos onto your %@ using iTunes." = "您可以使用 iTunes 將照片和影片\n同步到 %@。";
33 |
34 | /* Accessibility labels */
35 | "Play" = "播放";
36 | "Select" = "選擇";
37 | "Deselect" = "取消選擇";
38 |
39 | /* Video duration spell out */
40 | "hours" = "小時";
41 | "hour" = "小時";
42 | "minutes" = "分";
43 | "minute" = "分";
44 | "seconds" = "秒";
45 | "second" = "秒";
46 |
47 | /* Error message of playing stream video */
48 | "Cannot Play Stream Video" = "無法播放影片";
49 | "OK" = "好";
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsPickerNoAssetsView.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface CTAssetsPickerNoAssetsView : UIView
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/CTAssetsViewControllerTransition.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 |
30 |
31 |
32 |
33 | @interface CTAssetsViewControllerTransition : NSObject
34 |
35 |
36 | @property (nonatomic, assign) UINavigationControllerOperation operation;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/CTAssetsPageViewController+Internal.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | @interface CTAssetsPageViewController (Internal)
28 |
29 | @property (nonatomic, assign) BOOL allowsSelection;
30 |
31 | @end
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/CTAssetsPickerController+Internal.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | @interface CTAssetsPickerController (Internal)
28 |
29 | - (void)dismiss:(id)sender;
30 | - (void)finishPickingAssets:(id)sender;
31 |
32 | - (void)setShouldCollapseDetailViewController:(BOOL)collapse;
33 | - (void)showNoAssets;
34 |
35 | - (CGSize)assetCollectionThumbnailSize;
36 | - (CGSize)assetThumbnailSize;
37 | - (NSString *)selectedAssetsString;
38 |
39 | - (PHImageRequestOptions *)thumbnailRequestOptions;
40 | - (CGSize)imageSizeForContainerSize:(CGSize)size;
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSBundle+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 |
30 | #define CTAssetsPickerLocalizedString(key, comment) \
31 | NSLocalizedStringFromTableInBundle((key), @"CTAssetsPicker", [NSBundle ctassetsPickerBundle], (comment))
32 |
33 | @interface NSBundle (CTAssetsPickerController)
34 |
35 | + (NSBundle *)ctassetsPickerBundle;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSBundle+CTAssetsPickerController.m:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import "NSBundle+CTAssetsPickerController.h"
28 | #import "CTAssetsPickerController.h"
29 |
30 | @implementation NSBundle (CTAssetsPickerController)
31 |
32 | + (NSBundle *)ctassetsPickerBundle
33 | {
34 | return [NSBundle bundleWithPath:[NSBundle ctassetsPickerBundlePath]];
35 | }
36 |
37 | + (NSString *)ctassetsPickerBundlePath
38 | {
39 | return [[NSBundle bundleForClass:[CTAssetsPickerController class]]
40 | pathForResource:@"CTAssetsPickerController" ofType:@"bundle"];
41 | }
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSDateFormatter+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 |
30 |
31 | @interface NSDateFormatter (CTAssetsPickerController)
32 |
33 | - (NSString *)ctassetsPickerStringFromTimeInterval:(NSTimeInterval)timeInterval;
34 | - (NSString *)ctassetsPickerSpellOutStringFromTimeInterval:(NSTimeInterval)timeInterval;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSIndexSet+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface NSIndexSet (CTAssetsPickerController)
30 |
31 | - (NSArray *)ctassetsPickerIndexPathsFromIndexesWithSection:(NSUInteger)section;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSIndexSet+CTAssetsPickerController.m:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 | #import "NSIndexSet+CTAssetsPickerController.h"
29 |
30 |
31 | @implementation NSIndexSet (CTAssetsPickerController)
32 |
33 | - (NSArray *)ctassetsPickerIndexPathsFromIndexesWithSection:(NSUInteger)section
34 | {
35 | NSMutableArray *indexPaths = [NSMutableArray arrayWithCapacity:self.count];
36 |
37 | [self enumerateIndexesUsingBlock:^(NSUInteger index, BOOL *stop) {
38 | [indexPaths addObject:[NSIndexPath indexPathForItem:index inSection:section]];
39 | }];
40 |
41 | return indexPaths;
42 | }
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSNumberFormatter+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface NSNumberFormatter (CTAssetsPickerController)
30 |
31 | - (NSString *)ctassetsPickerStringFromAssetsCount:(NSUInteger)count;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/NSNumberFormatter+CTAssetsPickerController.m:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import "NSNumberFormatter+CTAssetsPickerController.h"
28 |
29 | @implementation NSNumberFormatter (CTAssetsPickerController)
30 |
31 | - (NSString *)ctassetsPickerStringFromAssetsCount:(NSUInteger)count
32 | {
33 | self.numberStyle = NSNumberFormatterDecimalStyle;
34 | self.locale = [NSLocale currentLocale];
35 | return [self stringFromNumber:[NSNumber numberWithUnsignedInteger:count]];
36 | }
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/PHAsset+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface PHAsset (CTAssetsPickerController)
30 |
31 | - (BOOL)ctassetsPickerIsPhoto;
32 | - (BOOL)ctassetsPickerIsVideo;
33 | - (BOOL)ctassetsPickerIsHighFrameRateVideo;
34 | - (BOOL)ctassetsPickerIsTimelapseVideo;
35 |
36 | - (UIImage *)badgeImage;
37 | - (NSString *)ctassetsPickerAccessibilityLabel;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/PHAssetCollection+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface PHAssetCollection (CTAssetsPickerController)
30 |
31 | + (PHAssetCollectionType)ctassetPickerAssetCollectionTypeOfSubtype:(PHAssetCollectionSubtype)subtype;
32 | - (NSUInteger)ctassetPikcerCountOfAssetsFetchedWithOptions:(PHFetchOptions *)fetchOptions;
33 | - (UIImage *)badgeImage;
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/UICollectionView+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface UICollectionView (CTAssetsPickerController)
30 |
31 | - (NSArray *)ctassetsPickerIndexPathsForElementsInRect:(CGRect)rect;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/UICollectionView+CTAssetsPickerController.m:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import "UICollectionView+CTAssetsPickerController.h"
28 |
29 | @implementation UICollectionView (CTAssetsPickerController)
30 |
31 | - (NSArray *)ctassetsPickerIndexPathsForElementsInRect:(CGRect)rect
32 | {
33 | NSArray *allAttributes = [self.collectionViewLayout layoutAttributesForElementsInRect:rect];
34 |
35 | if (allAttributes.count == 0)
36 | return nil;
37 |
38 | NSMutableArray *indexPaths = [NSMutableArray arrayWithCapacity:allAttributes.count];
39 |
40 | for (UICollectionViewLayoutAttributes *attributes in allAttributes)
41 | {
42 | NSIndexPath *indexPath = attributes.indexPath;
43 | [indexPaths addObject:indexPath];
44 | }
45 |
46 | return indexPaths;
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/UIImage+CTAssetsPickerController.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import
28 |
29 | @interface UIImage (CTAssetsPickerController)
30 |
31 | + (UIImage *)ctassetsPickerImageNamed:(NSString *)name;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/Vendor/CTAssetsPickerController/Categories/UIImage+CTAssetsPickerController.m:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MIT License (MIT)
4 |
5 | Copyright (c) 2015 Clement CN Tsang
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
24 |
25 | */
26 |
27 | #import "UIImage+CTAssetsPickerController.h"
28 | #import "NSBundle+CTAssetsPickerController.h"
29 |
30 | @implementation UIImage (CTAssetsPickerController)
31 |
32 | + (UIImage *)ctassetsPickerImageNamed:(NSString *)name
33 | {
34 | return [UIImage imageNamed:name inBundle:[NSBundle ctassetsPickerBundle] compatibleWithTraitCollection:nil];
35 | }
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/M80ImageMerger/M80ImageMerger/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // M80ImageMerger
4 | //
5 | // Created by amao on 11/27/15.
6 | // Copyright © 2015 M80. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/M80ImageMerger/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment the next line to define a global platform for your project
2 | platform :ios, '8.0'
3 |
4 | target 'M80ImageMerger' do
5 | pod ‘PureLayout’
6 | pod 'SVProgressHUD'
7 | pod 'Toast'
8 | pod 'Fabric'
9 | pod 'Crashlytics'
10 |
11 |
12 | end
13 |
--------------------------------------------------------------------------------
/M80ImageMerger/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Crashlytics (3.10.2):
3 | - Fabric (~> 1.7.7)
4 | - Fabric (1.7.7)
5 | - PureLayout (3.0.2)
6 | - SVProgressHUD (2.1.2)
7 | - Toast (3.1.0)
8 |
9 | DEPENDENCIES:
10 | - Crashlytics
11 | - Fabric
12 | - PureLayout
13 | - SVProgressHUD
14 | - Toast
15 |
16 | SPEC REPOS:
17 | https://github.com/cocoapods/specs.git:
18 | - Crashlytics
19 | - Fabric
20 | - PureLayout
21 | - SVProgressHUD
22 | - Toast
23 |
24 | SPEC CHECKSUMS:
25 | Crashlytics: 0360624eea1c978a743feddb2fb1ef8b37fb7a0d
26 | Fabric: bda89e242bce1b7b8ab264248cf3407774ce0095
27 | PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
28 | SVProgressHUD: c404a55d78acbeb7ebb78b76d3faf986475a6994
29 | Toast: 14a93686d6c8bfe2727afd342414e35660a8a1f3
30 |
31 | PODFILE CHECKSUM: 5b86f05e554593450e4d75bb74ca05124c2d0305
32 |
33 | COCOAPODS: 1.5.3
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/Crashlytics.framework/README:
--------------------------------------------------------------------------------
1 | We've now combined all our supported platforms into a single podspec. As a result, we moved our submit script to a new location for Cocoapods projects: ${PODS_ROOT}/Crashlytics/submit. To avoid breaking functionality that references the old location of the submit, we've placed this dummy script that calls to the correct location, while providing a helpful warning if it is invoked. This bridge for backwards compatibility will be removed in a future release, so please heed the warning!
2 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/Crashlytics.framework/submit:
--------------------------------------------------------------------------------
1 | if [[ -z $PODS_ROOT ]]; then
2 | echo "error: The submit binary delivered by cocoapods is in a new location, under '$"{"PODS_ROOT"}"/Crashlytics/submit'. This script was put in place for backwards compatibility, but it relies on PODS_ROOT, which does not have a value in your current setup. Please update the path to the submit binary to fix this issue."
3 | else
4 | echo "warning: The submit script is now located at '$"{"PODS_ROOT"}"/Crashlytics/submit'. To remove this warning, update your path to point to this new location."
5 | sh "${PODS_ROOT}/Crashlytics/submit" "$@"
6 | fi
7 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | Part of [Google Fabric](https://get.fabric.io), [Crashlytics](http://try.crashlytics.com/) offers the most powerful, yet lightest weight crash reporting solution for iOS. Crashlytics also provides real-time analytics through [Answers](https://answers.io/) and app distributions to testers using [Beta](http://try.crashlytics.com/beta/).
4 |
5 | ## Setup
6 |
7 | 1. Visit [https://fabric.io/sign_up](https://fabric.io/sign_up) to create your Fabric account and to download Fabric.app.
8 |
9 | 1. Open Fabric.app, login and select the Crashlytics SDK.
10 |
11 | 
12 |
13 | 1. The Fabric app automatically detects when a project uses CocoaPods and gives you the option to install via the Podfile or Xcode.
14 |
15 | 
16 |
17 | 1. Select the Podfile option and follow the installation instructions to update your Podfile. **Note:** the Crashlytics Pod includes Answers. If you have Answers included as a separate Pod it should be removed from your Podfile to avoid duplicate symbol errors.
18 |
19 | ```
20 | pod 'Fabric'
21 | pod 'Crashlytics'
22 | ```
23 |
24 | 1. Run `pod install`
25 |
26 | 1. Add a Run Script Build Phase and build your app.
27 |
28 | 
29 |
30 | 1. Initialize the SDK by inserting code outlined in the Fabric.app.
31 |
32 | 1. Run your app to finish the installation.
33 |
34 | ## Resources
35 |
36 | * [Documentation](https://docs.fabric.io/apple/crashlytics/overview.html)
37 | * [Forums](https://stackoverflow.com/questions/tagged/google-fabric)
38 | * [Website](http://try.crashlytics.com/)
39 | * Follow us on Twitter: [@fabric](https://twitter.com/fabric) and [@crashlytics](https://twitter.com/crashlytics)
40 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Headers/ANSCompatibility.h:
--------------------------------------------------------------------------------
1 | //
2 | // ANSCompatibility.h
3 | // AnswersKit
4 | //
5 | // Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
6 | //
7 |
8 | #pragma once
9 |
10 | #if !__has_feature(nullability)
11 | #define nonnull
12 | #define nullable
13 | #define _Nullable
14 | #define _Nonnull
15 | #endif
16 |
17 | #ifndef NS_ASSUME_NONNULL_BEGIN
18 | #define NS_ASSUME_NONNULL_BEGIN
19 | #endif
20 |
21 | #ifndef NS_ASSUME_NONNULL_END
22 | #define NS_ASSUME_NONNULL_END
23 | #endif
24 |
25 | #if __has_feature(objc_generics)
26 | #define ANS_GENERIC_NSARRAY(type) NSArray
27 | #define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
28 | #else
29 | #define ANS_GENERIC_NSARRAY(type) NSArray
30 | #define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
31 | #endif
32 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Headers/CLSAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // CLSAttributes.h
3 | // Crashlytics
4 | //
5 | // Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
6 | //
7 |
8 | #pragma once
9 |
10 | #define CLS_DEPRECATED(x) __attribute__ ((deprecated(x)))
11 |
12 | #if !__has_feature(nullability)
13 | #define nonnull
14 | #define nullable
15 | #define _Nullable
16 | #define _Nonnull
17 | #endif
18 |
19 | #ifndef NS_ASSUME_NONNULL_BEGIN
20 | #define NS_ASSUME_NONNULL_BEGIN
21 | #endif
22 |
23 | #ifndef NS_ASSUME_NONNULL_END
24 | #define NS_ASSUME_NONNULL_END
25 | #endif
26 |
27 | #if __has_feature(objc_generics)
28 | #define CLS_GENERIC_NSARRAY(type) NSArray
29 | #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
30 | #else
31 | #define CLS_GENERIC_NSARRAY(type) NSArray
32 | #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
33 | #endif
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Headers/CLSLogging.h:
--------------------------------------------------------------------------------
1 | //
2 | // CLSLogging.h
3 | // Crashlytics
4 | //
5 | // Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
6 | //
7 | #ifdef __OBJC__
8 | #import "CLSAttributes.h"
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 | #endif
13 |
14 |
15 |
16 | /**
17 | *
18 | * The CLS_LOG macro provides as easy way to gather more information in your log messages that are
19 | * sent with your crash data. CLS_LOG prepends your custom log message with the function name and
20 | * line number where the macro was used. If your app was built with the DEBUG preprocessor macro
21 | * defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
22 | * If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
23 | *
24 | * Example output:
25 | * -[AppDelegate login:] line 134 $ login start
26 | *
27 | * If you would like to change this macro, create a new header file, unset our define and then define
28 | * your own version. Make sure this new header file is imported after the Crashlytics header file.
29 | *
30 | * #undef CLS_LOG
31 | * #define CLS_LOG(__FORMAT__, ...) CLSNSLog...
32 | *
33 | **/
34 | #ifdef __OBJC__
35 | #ifdef DEBUG
36 | #define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
37 | #else
38 | #define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
39 | #endif
40 | #endif
41 |
42 | /**
43 | *
44 | * Add logging that will be sent with your crash data. This logging will not show up in the system.log
45 | * and will only be visible in your Crashlytics dashboard.
46 | *
47 | **/
48 |
49 | #ifdef __OBJC__
50 | OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
51 | OBJC_EXTERN void CLSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0);
52 |
53 | /**
54 | *
55 | * Add logging that will be sent with your crash data. This logging will show up in the system.log
56 | * and your Crashlytics dashboard. It is not recommended for Release builds.
57 | *
58 | **/
59 | OBJC_EXTERN void CLSNSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
60 | OBJC_EXTERN void CLSNSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0);
61 |
62 |
63 | NS_ASSUME_NONNULL_END
64 | #endif
65 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Headers/CLSStackFrame.h:
--------------------------------------------------------------------------------
1 | //
2 | // CLSStackFrame.h
3 | // Crashlytics
4 | //
5 | // Copyright 2015 Crashlytics, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 | #import "CLSAttributes.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | /**
14 | *
15 | * This class is used in conjunction with -[Crashlytics recordCustomExceptionName:reason:frameArray:] to
16 | * record information about non-ObjC/C++ exceptions. All information included here will be displayed
17 | * in the Crashlytics UI, and can influence crash grouping. Be particularly careful with the use of the
18 | * address property. If set, Crashlytics will attempt symbolication and could overwrite other properities
19 | * in the process.
20 | *
21 | **/
22 | @interface CLSStackFrame : NSObject
23 |
24 | + (instancetype)stackFrame;
25 | + (instancetype)stackFrameWithAddress:(NSUInteger)address;
26 | + (instancetype)stackFrameWithSymbol:(NSString *)symbol;
27 |
28 | @property (nonatomic, copy, nullable) NSString *symbol;
29 | @property (nonatomic, copy, nullable) NSString *rawSymbol;
30 | @property (nonatomic, copy, nullable) NSString *library;
31 | @property (nonatomic, copy, nullable) NSString *fileName;
32 | @property (nonatomic, assign) uint32_t lineNumber;
33 | @property (nonatomic, assign) uint64_t offset;
34 | @property (nonatomic, assign) uint64_t address;
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module Crashlytics {
2 | header "Crashlytics.h"
3 | header "Answers.h"
4 | header "ANSCompatibility.h"
5 | header "CLSLogging.h"
6 | header "CLSReport.h"
7 | header "CLSStackFrame.h"
8 | header "CLSAttributes.h"
9 |
10 | export *
11 |
12 | link "z"
13 | link "c++"
14 | }
15 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/run:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # run
4 | #
5 | # Copyright (c) 2015 Crashlytics. All rights reserved.
6 |
7 | # Figure out where we're being called from
8 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
9 |
10 | # Quote path in case of spaces or special chars
11 | DIR="\"${DIR}"
12 |
13 | PATH_SEP="/"
14 | VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
15 | UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
16 |
17 | # Ensure params are as expected, run in sync mode to validate
18 | eval $DIR$PATH_SEP$VALIDATE_COMMAND
19 | return_code=$?
20 |
21 | if [[ $return_code != 0 ]]; then
22 | exit $return_code
23 | fi
24 |
25 | # Verification passed, upload dSYM in background to prevent Xcode from waiting
26 | # Note: Validation is performed again before upload.
27 | # Output can still be found in Console.app
28 | eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
29 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/submit:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/submit
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Crashlytics/submit:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Crashlytics/submit
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/Fabric.framework/README:
--------------------------------------------------------------------------------
1 | We've now combined all our supported platforms into a single podspec. As a result, we moved our run script to a new location for Cocoapods projects: ${PODS_ROOT}/Fabric/run. To avoid breaking builds that reference the old location of the run script, we've placed this dummy script that calls to the correct location, while providing a helpful warning in Xcode if it is invoked. This bridge for backwards compatibility will be removed in a future release, so please heed the warning!
2 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/Fabric.framework/run:
--------------------------------------------------------------------------------
1 | if [[ -z $PODS_ROOT ]]; then
2 | echo "error: The run binary delivered by cocoapods is in a new location, under '$"{"PODS_ROOT"}"/Fabric/run'. This script was put in place for backwards compatibility, but it relies on PODS_ROOT, which does not have a value in your current setup. Please update the path to the run binary to fix this issue."
3 | else
4 | echo "warning: The run script is now located at '$"{"PODS_ROOT"}"/Fabric/run'. To remove this warning, update your Run Script Build Phase to point to this new location."
5 | sh "${PODS_ROOT}/Fabric/run" "$@"
6 | fi
7 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Fabric
4 |
5 | ## Overview
6 |
7 | [Fabric](https://get.fabric.io) provides developers with the tools they need to build the best apps. Developed and maintained by Google and the team that built Crashlytics, Fabric provides an easy way to manage all your SDKs so that you’ll never have to worry about tedious configurations or juggling different accounts. We let you get right into coding and building the next big app.
8 |
9 | For a full list of SDK provided through Fabric visit [https://fabric.io/kits](https://fabric.io/kits).
10 |
11 | ## Setup
12 |
13 | The Fabric Pod is a dependency for all Fabric SDKs and is included when installing any Fabric related Pods. General setup instructions are shown below; however, these vary depending on the selected SDK.
14 |
15 | 1. Visit [https://fabric.io/sign_up](https://fabric.io/sign_up) to create your Fabric account and to download Fabric.app.
16 |
17 | 1. Open Fabric.app, login and select an SDK to install.
18 |
19 | 
20 |
21 | 1. The Fabric app automatically detects when a project uses CocoaPods and gives you the option to install via the Podfile or Xcode.
22 |
23 | 
24 |
25 | 1. Select the Podfile option and follow the installation instructions to update your Podfile. Note: the example below is for the Crashlytics SDK. The instructions will vary based on the selected SDK.
26 |
27 | 
28 |
29 | 1. Add a Run Script Build Phase and build your app.
30 |
31 | 
32 |
33 | 1. Initialize the SDK by inserting code outlined in Fabric.app.
34 |
35 | 1. Run your app to finish the installation.
36 |
37 | ## Resources
38 |
39 | * [Documentation](https://docs.fabric.io/)
40 | * [Forums](https://stackoverflow.com/questions/tagged/google-fabric)
41 | * [Website](https://get.fabric.io)
42 | * Follow us on Twitter: [@fabric](https://twitter.com/fabric)
43 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/Fabric:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/Fabric
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/Headers/FABAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // FABAttributes.h
3 | // Fabric
4 | //
5 | // Copyright (C) 2015 Twitter, Inc.
6 | //
7 | // Licensed under the Apache License, Version 2.0 (the "License");
8 | // you may not use this file except in compliance with the License.
9 | // You may obtain a copy of the License at
10 | //
11 | // http://www.apache.org/licenses/LICENSE-2.0
12 | //
13 | // Unless required by applicable law or agreed to in writing, software
14 | // distributed under the License is distributed on an "AS IS" BASIS,
15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | // See the License for the specific language governing permissions and
17 | // limitations under the License.
18 | //
19 |
20 | #pragma once
21 |
22 | #define FAB_UNAVAILABLE(x) __attribute__((unavailable(x)))
23 |
24 | #if !__has_feature(nullability)
25 | #define nonnull
26 | #define nullable
27 | #define _Nullable
28 | #define _Nonnull
29 | #endif
30 |
31 | #ifndef NS_ASSUME_NONNULL_BEGIN
32 | #define NS_ASSUME_NONNULL_BEGIN
33 | #endif
34 |
35 | #ifndef NS_ASSUME_NONNULL_END
36 | #define NS_ASSUME_NONNULL_END
37 | #endif
38 |
39 |
40 | /**
41 | * The following macros are defined here to provide
42 | * backwards compatability. If you are still using
43 | * them you should migrate to the native nullability
44 | * macros.
45 | */
46 | #define fab_nullable nullable
47 | #define fab_nonnull nonnull
48 | #define FAB_NONNULL __fab_nonnull
49 | #define FAB_NULLABLE __fab_nullable
50 | #define FAB_START_NONNULL NS_ASSUME_NONNULL_BEGIN
51 | #define FAB_END_NONNULL NS_ASSUME_NONNULL_END
52 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/Info.plist
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module Fabric {
2 | umbrella header "Fabric.h"
3 |
4 | export *
5 | module * { export * }
6 | }
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/run:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # run
4 | #
5 | # Copyright (c) 2015 Crashlytics. All rights reserved.
6 |
7 | # Figure out where we're being called from
8 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
9 |
10 | # Quote path in case of spaces or special chars
11 | DIR="\"${DIR}"
12 |
13 | PATH_SEP="/"
14 | VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
15 | UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
16 |
17 | # Ensure params are as expected, run in sync mode to validate
18 | eval $DIR$PATH_SEP$VALIDATE_COMMAND
19 | return_code=$?
20 |
21 | if [[ $return_code != 0 ]]; then
22 | exit $return_code
23 | fi
24 |
25 | # Verification passed, upload dSYM in background to prevent Xcode from waiting
26 | # Note: Validation is performed again before upload.
27 | # Output can still be found in Console.app
28 | eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
29 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/uploadDSYM:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Fabric/iOS/Fabric.framework/uploadDSYM
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/run:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # run
4 | #
5 | # Copyright (c) 2015 Crashlytics. All rights reserved.
6 |
7 | # Figure out where we're being called from
8 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
9 |
10 | # Quote path in case of spaces or special chars
11 | DIR="\"${DIR}"
12 |
13 | PATH_SEP="/"
14 | VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script"
15 | UPLOAD_COMMAND="uploadDSYM\" $@ run-script"
16 |
17 | # Ensure params are as expected, run in sync mode to validate
18 | eval $DIR$PATH_SEP$VALIDATE_COMMAND
19 | return_code=$?
20 |
21 | if [[ $return_code != 0 ]]; then
22 | exit $return_code
23 | fi
24 |
25 | # Verification passed, upload dSYM in background to prevent Xcode from waiting
26 | # Note: Validation is performed again before upload.
27 | # Output can still be found in Console.app
28 | eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 &
29 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/upload-symbols:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Fabric/upload-symbols
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Fabric/uploadDSYM:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/Fabric/uploadDSYM
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/PureLayout/ALView+PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/ALView+PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/PureLayout/NSArray+PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/NSArray+PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/PureLayout/NSLayoutConstraint+PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/NSLayoutConstraint+PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/PureLayout/PureLayout+Internal.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/PureLayout+Internal.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/PureLayout/PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/PureLayout/PureLayoutDefines.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/PureLayoutDefines.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/SVProgressHUD/SVIndefiniteAnimatedView.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/SVProgressHUD/SVProgressAnimatedView.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/SVProgressHUD/SVProgressHUD.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressHUD.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/SVProgressHUD/SVRadialGradientLayer.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Private/Toast/UIView+Toast.h:
--------------------------------------------------------------------------------
1 | ../../../Toast/Toast/Toast/UIView+Toast.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/ANSCompatibility.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/ANSCompatibility.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/Answers.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/Answers.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/CLSAttributes.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/CLSAttributes.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/CLSLogging.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/CLSLogging.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/CLSReport.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/CLSReport.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/CLSStackFrame.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/CLSStackFrame.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Crashlytics/Crashlytics/Crashlytics.h:
--------------------------------------------------------------------------------
1 | ../../../../Crashlytics/iOS/Crashlytics.framework/Headers/Crashlytics.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Fabric/Fabric/FABAttributes.h:
--------------------------------------------------------------------------------
1 | ../../../../Fabric/iOS/Fabric.framework/Headers/FABAttributes.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Fabric/Fabric/Fabric.h:
--------------------------------------------------------------------------------
1 | ../../../../Fabric/iOS/Fabric.framework/Headers/Fabric.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/PureLayout/ALView+PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/ALView+PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/PureLayout/NSArray+PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/NSArray+PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/PureLayout/NSLayoutConstraint+PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/NSLayoutConstraint+PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/PureLayout/PureLayout+Internal.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/PureLayout+Internal.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/PureLayout/PureLayout.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/PureLayout.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/PureLayout/PureLayoutDefines.h:
--------------------------------------------------------------------------------
1 | ../../../PureLayout/PureLayout/PureLayout/PureLayoutDefines.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/SVProgressHUD/SVIndefiniteAnimatedView.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/SVProgressHUD/SVProgressAnimatedView.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/SVProgressHUD/SVProgressHUD.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressHUD.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/SVProgressHUD/SVRadialGradientLayer.h:
--------------------------------------------------------------------------------
1 | ../../../SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Headers/Public/Toast/UIView+Toast.h:
--------------------------------------------------------------------------------
1 | ../../../Toast/Toast/Toast/UIView+Toast.h
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Crashlytics (3.10.2):
3 | - Fabric (~> 1.7.7)
4 | - Fabric (1.7.7)
5 | - PureLayout (3.0.2)
6 | - SVProgressHUD (2.1.2)
7 | - Toast (3.1.0)
8 |
9 | DEPENDENCIES:
10 | - Crashlytics
11 | - Fabric
12 | - PureLayout
13 | - SVProgressHUD
14 | - Toast
15 |
16 | SPEC REPOS:
17 | https://github.com/cocoapods/specs.git:
18 | - Crashlytics
19 | - Fabric
20 | - PureLayout
21 | - SVProgressHUD
22 | - Toast
23 |
24 | SPEC CHECKSUMS:
25 | Crashlytics: 0360624eea1c978a743feddb2fb1ef8b37fb7a0d
26 | Fabric: bda89e242bce1b7b8ab264248cf3407774ce0095
27 | PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
28 | SVProgressHUD: c404a55d78acbeb7ebb78b76d3faf986475a6994
29 | Toast: 14a93686d6c8bfe2727afd342414e35660a8a1f3
30 |
31 | PODFILE CHECKSUM: 5b86f05e554593450e4d75bb74ca05124c2d0305
32 |
33 | COCOAPODS: 1.5.3
34 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/PureLayout/LICENSE:
--------------------------------------------------------------------------------
1 | This code is distributed under the terms and conditions of the MIT license.
2 |
3 | Copyright (c) 2014-2015 Tyler Fox
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/PureLayout/PureLayout/PureLayout/PureLayout.h:
--------------------------------------------------------------------------------
1 | //
2 | // PureLayout.h
3 | // https://github.com/PureLayout/PureLayout
4 | //
5 | // Copyright (c) 2014-2015 Tyler Fox
6 | //
7 | // This code is distributed under the terms and conditions of the MIT license.
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to
11 | // deal in the Software without restriction, including without limitation the
12 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
13 | // sell copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in
17 | // all copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
25 | // IN THE SOFTWARE.
26 | //
27 |
28 | #ifndef PureLayout_h
29 | #define PureLayout_h
30 |
31 | #import
32 |
33 | //! Project version number for PureLayout.
34 | FOUNDATION_EXPORT double PureLayoutVersionNumber;
35 |
36 | //! Project version string for PureLayout.
37 | FOUNDATION_EXPORT const unsigned char PureLayoutVersionString[];
38 |
39 | #import "ALView+PureLayout.h"
40 | #import "NSArray+PureLayout.h"
41 | #import "NSLayoutConstraint+PureLayout.h"
42 |
43 | #endif /* PureLayout_h */
44 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2016 Sam Vermette, Tobias Tiemerding and contributors.
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | A different license may apply to other resources included in this package,
25 | including Freepik Icons. Please consult their
26 | respective headers for the terms of their individual licenses.
27 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SVIndefiniteAnimatedView.h
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2014-2016 Guillaume Campagna. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface SVIndefiniteAnimatedView : UIView
11 |
12 | @property (nonatomic, assign) CGFloat strokeThickness;
13 | @property (nonatomic, assign) CGFloat radius;
14 | @property (nonatomic, strong) UIColor *strokeColor;
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SVProgressAnimatedView.h
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2016 Tobias Tiemerding. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface SVProgressAnimatedView : UIView
11 |
12 | @property (nonatomic, assign) CGFloat radius;
13 | @property (nonatomic, assign) CGFloat strokeThickness;
14 | @property (nonatomic, strong) UIColor *strokeColor;
15 | @property (nonatomic, assign) CGFloat strokeEnd;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiangwangfeng/M80ImageMerger/11f5f9b8d866cfa7f88637ab1470cb399184461e/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h:
--------------------------------------------------------------------------------
1 | //
2 | // SVRadialGradientLayer.h
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2014-2016 Tobias Tiemerding. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface SVRadialGradientLayer : CALayer
11 |
12 | @property (nonatomic) CGPoint gradientCenter;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m:
--------------------------------------------------------------------------------
1 | //
2 | // SVRadialGradientLayer.m
3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD
4 | //
5 | // Copyright (c) 2014-2016 Tobias Tiemerding. All rights reserved.
6 | //
7 |
8 | #import "SVRadialGradientLayer.h"
9 |
10 | @implementation SVRadialGradientLayer
11 |
12 | - (void)drawInContext:(CGContextRef)context {
13 | size_t locationsCount = 2;
14 | CGFloat locations[2] = {0.0f, 1.0f};
15 | CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f};
16 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
17 | CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount);
18 | CGColorSpaceRelease(colorSpace);
19 |
20 | float radius = MIN(self.bounds.size.width , self.bounds.size.height);
21 | CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation);
22 | CGGradientRelease(gradient);
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/Pods-M80ImageMerger/Pods-M80ImageMerger-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_M80ImageMerger : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_M80ImageMerger
5 | @end
6 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/Pods-M80ImageMerger/Pods-M80ImageMerger.debug.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Toast"
4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Toast"
5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Crashlytics" -isystem "${PODS_ROOT}/Headers/Public/Fabric" -isystem "${PODS_ROOT}/Headers/Public/PureLayout" -isystem "${PODS_ROOT}/Headers/Public/SVProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Toast"
6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"PureLayout" -l"SVProgressHUD" -l"Toast" -l"c++" -l"z" -framework "Crashlytics" -framework "Fabric" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
7 | PODS_BUILD_DIR = ${BUILD_DIR}
8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
10 | PODS_ROOT = ${SRCROOT}/Pods
11 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/Pods-M80ImageMerger/Pods-M80ImageMerger.release.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Toast"
4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Toast"
5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Crashlytics" -isystem "${PODS_ROOT}/Headers/Public/Fabric" -isystem "${PODS_ROOT}/Headers/Public/PureLayout" -isystem "${PODS_ROOT}/Headers/Public/SVProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Toast"
6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"PureLayout" -l"SVProgressHUD" -l"Toast" -l"c++" -l"z" -framework "Crashlytics" -framework "Fabric" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
7 | PODS_BUILD_DIR = ${BUILD_DIR}
8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
10 | PODS_ROOT = ${SRCROOT}/Pods
11 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/PureLayout/PureLayout-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_PureLayout : NSObject
3 | @end
4 | @implementation PodsDummy_PureLayout
5 | @end
6 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/PureLayout/PureLayout-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/PureLayout/PureLayout.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PureLayout
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PureLayout" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/PureLayout"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/PureLayout
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_SVProgressHUD : NSObject
3 | @end
4 | @implementation PodsDummy_SVProgressHUD
5 | @end
6 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SVProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SVProgressHUD"
4 | OTHER_LDFLAGS = -framework "QuartzCore"
5 | PODS_BUILD_DIR = ${BUILD_DIR}
6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_ROOT = ${SRCROOT}
8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SVProgressHUD
9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
10 | SKIP_INSTALL = YES
11 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/Toast/Toast-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Toast : NSObject
3 | @end
4 | @implementation PodsDummy_Toast
5 | @end
6 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/Toast/Toast-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Target Support Files/Toast/Toast.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Toast
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Toast" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Toast"
4 | OTHER_LDFLAGS = -framework "QuartzCore"
5 | PODS_BUILD_DIR = ${BUILD_DIR}
6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_ROOT = ${SRCROOT}
8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Toast
9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
10 | SKIP_INSTALL = YES
11 |
--------------------------------------------------------------------------------
/M80ImageMerger/Pods/Toast/license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2015 Charles Scalesse.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a
4 | copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included
12 | in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 截图自动拼接小工具
2 |
3 | ## 源起
4 |
5 | 经常会有这样的需求:
6 |
7 | 需要将微信里面和某些人的聊天记录转发给其他人,然而聊天记录过长,需要一页页截图发送,接收者收到这种消息往往有点抓狂,毕竟要反复确认每张图之间的上下文关系。所以,更好的做法应该是在本地将这些截图评完拼接再发送。
8 |
9 | 需要将某篇长文分享给其他人,但是当前 App 的分享功能非常难用,而且经常会强制接收者安装当前 App (比如某秘) 才能继续浏览文章。又或者是仅想分享文章到票圈而不让人知道出处。
10 |
11 | 这些需求总让人想要把当前的截图素材先做拼接再发送。而在我做这个 DEMO 的时候,AppStore 只有一款做自动拼接的免费 App,但不付费就限制保存次数,蛋疼。所以作为程序员还是自己撸一个用吧。于是就有了这么一个 DEMO。
12 |
13 |
14 | ## 上架
15 |
16 | 2015 年做完这个 App 后编译到自己 iPhone 用就没再管它。最近老婆大人想用,天真地问我:“为啥你这个东西不能上 AppStore?”。解释一通后,老婆大人就默默给我买了一年期的苹果开发者账号,说:“卖 6 块,收入归我”。(我去,做了 5 年家养 iOS 开发工程师后,要开始做独立开发者了么?)
17 |
18 | =。= 强烈怀疑这货能不能收回成本。
19 |
20 | ## UI
21 |
22 | 作为一个年迈的程序员,完成这种 App 功能不过一两个晚上的事情,但是最大的痛苦是为了要上线,画 icon,准备资源,设计还过得去的界面。
23 |
24 | App 名是 Centaur,因为它也是拼接出来的啊。(好冷
25 |
26 | Icon 的意思是将 3 块图进行叠加。当然也[有人](https://github.com/imoldman)理解成 “人到三十”。(年迈的程序员
27 |
28 | ## 原理
29 |
30 | 有兴趣的同学可以参考这篇文章: [记一个截图拼接的小工具](http://xiangwangfeng.com/2015/11/30/%E8%AE%B0%E4%B8%80%E4%B8%AA%E6%88%AA%E5%9B%BE%E6%8B%BC%E6%8E%A5%E7%9A%84%E5%B0%8F%E5%B7%A5%E5%85%B7/)
31 |
32 | 原理较为简单,当然为了在实际使用中得到更好的效果也做了不少的改良,详细可以参考代码。
33 |
34 | ## 使用方法
35 |
36 | 参考如下[视频](https://nos.netease.com/yx-web/c44174085943f8362ff95efef4e8ec46)
37 |
38 | ## 已知问题列表
39 |
40 | ### 下载后编译失败,提示缺少库
41 |
42 | 请使用 workspace 打开工程
43 |
44 | ### 某些截图无法拼接
45 |
46 | 对于截图中有动图,背景贴图的情况并无法 100% 有效
47 |
48 | ### 3x 支持
49 |
50 | 因为原理问题,对 3x 支持并不好......恶魔魔买面膜
51 |
--------------------------------------------------------------------------------