Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
dz_TZImagePickerController
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shuijing
dz_TZImagePickerController
Commits
f9c4d10b
Commit
f9c4d10b
authored
Nov 22, 2018
by
yuzheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
给TZImageManager获取图片的方法加入PHImageRequestID的返回值,方便业务方取消
parent
9197b979
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
26 deletions
+27
-26
TZImagePickerController/TZImagePickerController/TZImageManager.h
...PickerController/TZImagePickerController/TZImageManager.h
+10
-10
TZImagePickerController/TZImagePickerController/TZImageManager.m
...PickerController/TZImagePickerController/TZImageManager.m
+15
-15
TZImagePickerController/ViewController.m
TZImagePickerController/ViewController.m
+2
-1
No files found.
TZImagePickerController/TZImagePickerController/TZImageManager.h
View file @
f9c4d10b
...
...
@@ -58,21 +58,21 @@
-
(
void
)
getAssetFromFetchResult
:(
PHFetchResult
*
)
result
atIndex
:(
NSInteger
)
index
allowPickingVideo
:(
BOOL
)
allowPickingVideo
allowPickingImage
:(
BOOL
)
allowPickingImage
completion
:(
void
(
^
)(
TZAssetModel
*
model
))
completion
;
/// Get photo 获得照片
-
(
void
)
getPostImageWithAlbumModel
:(
TZAlbumModel
*
)
model
completion
:(
void
(
^
)(
UIImage
*
postImage
))
completion
;
-
(
PHImageRequestID
)
getPostImageWithAlbumModel
:(
TZAlbumModel
*
)
model
completion
:(
void
(
^
)(
UIImage
*
postImage
))
completion
;
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
;
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
;
-
(
int32_t
)
requestImageDataForAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
;
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
;
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
;
-
(
PHImageRequestID
)
requestImageDataForAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
;
/// Get full Image 获取原图
/// 如下两个方法completion一般会调多次,一般会先返回缩略图,再返回原图(详见方法内部使用的系统API的说明),如果info[PHImageResultIsDegradedKey] 为 YES,则表明当前返回的是缩略图,否则是原图。
-
(
void
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
))
completion
;
-
(
void
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
newCompletion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
PHImageRequestID
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
))
completion
;
-
(
PHImageRequestID
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
newCompletion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
// 该方法中,completion只会走一次
-
(
void
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
void
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
PHImageRequestID
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
-
(
PHImageRequestID
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
;
/// Save photo 保存照片
-
(
void
)
savePhotoWithImage
:(
UIImage
*
)
image
completion
:(
void
(
^
)(
PHAsset
*
asset
,
NSError
*
error
))
completion
;
...
...
TZImagePickerController/TZImagePickerController/TZImageManager.m
View file @
f9c4d10b
...
...
@@ -301,7 +301,7 @@ static dispatch_once_t onceToken;
#pragma mark - Get Photo
/// Get photo 获得照片本身
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
,
NSDictionary
*
,
BOOL
isDegraded
))
completion
{
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
,
NSDictionary
*
,
BOOL
isDegraded
))
completion
{
CGFloat
fullScreenWidth
=
TZScreenWidth
;
if
(
fullScreenWidth
>
_photoPreviewMaxWidth
)
{
fullScreenWidth
=
_photoPreviewMaxWidth
;
...
...
@@ -309,11 +309,11 @@ static dispatch_once_t onceToken;
return
[
self
getPhotoWithAsset
:
asset
photoWidth
:
fullScreenWidth
completion
:
completion
progressHandler
:
nil
networkAccessAllowed
:
YES
];
}
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
return
[
self
getPhotoWithAsset
:
asset
photoWidth
:
photoWidth
completion
:
completion
progressHandler
:
nil
networkAccessAllowed
:
YES
];
}
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
{
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
{
CGFloat
fullScreenWidth
=
TZScreenWidth
;
if
(
_photoPreviewMaxWidth
>
0
&&
fullScreenWidth
>
_photoPreviewMaxWidth
)
{
fullScreenWidth
=
_photoPreviewMaxWidth
;
...
...
@@ -321,7 +321,7 @@ static dispatch_once_t onceToken;
return
[
self
getPhotoWithAsset
:
asset
photoWidth
:
fullScreenWidth
completion
:
completion
progressHandler
:
progressHandler
networkAccessAllowed
:
networkAccessAllowed
];
}
-
(
int32_t
)
requestImageDataForAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
{
-
(
PHImageRequestID
)
requestImageDataForAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
{
PHImageRequestOptions
*
options
=
[[
PHImageRequestOptions
alloc
]
init
];
options
.
progressHandler
=
^
(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
)
{
dispatch_async
(
dispatch_get_main_queue
(),
^
{
...
...
@@ -338,7 +338,7 @@ static dispatch_once_t onceToken;
return
imageRequestID
;
}
-
(
int32_t
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
{
-
(
PHImageRequestID
)
getPhotoWithAsset
:(
PHAsset
*
)
asset
photoWidth
:(
CGFloat
)
photoWidth
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
networkAccessAllowed
:(
BOOL
)
networkAccessAllowed
{
CGSize
imageSize
;
if
(
photoWidth
<
TZScreenWidth
&&
photoWidth
<
_photoPreviewMaxWidth
)
{
imageSize
=
AssetGridThumbnailSize
;
...
...
@@ -401,30 +401,30 @@ static dispatch_once_t onceToken;
}
/// Get postImage / 获取封面图
-
(
void
)
getPostImageWithAlbumModel
:(
TZAlbumModel
*
)
model
completion
:(
void
(
^
)(
UIImage
*
))
completion
{
-
(
PHImageRequestID
)
getPostImageWithAlbumModel
:(
TZAlbumModel
*
)
model
completion
:(
void
(
^
)(
UIImage
*
))
completion
{
id
asset
=
[
model
.
result
lastObject
];
if
(
!
self
.
sortAscendingByModificationDate
)
{
asset
=
[
model
.
result
firstObject
];
}
[[
TZImageManager
manager
]
getPhotoWithAsset
:
asset
photoWidth
:
80
completion
:^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
return
[[
TZImageManager
manager
]
getPhotoWithAsset
:
asset
photoWidth
:
80
completion
:^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
if
(
completion
)
completion
(
photo
);
}];
}
/// Get Original Photo / 获取原图
-
(
void
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
))
completion
{
[
self
getOriginalPhotoWithAsset
:
asset
newCompletion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
-
(
PHImageRequestID
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
))
completion
{
return
[
self
getOriginalPhotoWithAsset
:
asset
newCompletion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
if
(
completion
)
{
completion
(
photo
,
info
);
}
}];
}
-
(
void
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
newCompletion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
-
(
PHImageRequestID
)
getOriginalPhotoWithAsset
:(
PHAsset
*
)
asset
newCompletion
:(
void
(
^
)(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
PHImageRequestOptions
*
option
=
[[
PHImageRequestOptions
alloc
]
init
];
option
.
networkAccessAllowed
=
YES
;
option
.
resizeMode
=
PHImageRequestOptionsResizeModeFast
;
[[
PHImageManager
defaultManager
]
requestImageForAsset
:
asset
targetSize
:
PHImageManagerMaximumSize
contentMode
:
PHImageContentModeAspectFit
options
:
option
resultHandler
:^
(
UIImage
*
result
,
NSDictionary
*
info
)
{
return
[[
PHImageManager
defaultManager
]
requestImageForAsset
:
asset
targetSize
:
PHImageManagerMaximumSize
contentMode
:
PHImageContentModeAspectFit
options
:
option
resultHandler
:^
(
UIImage
*
result
,
NSDictionary
*
info
)
{
BOOL
downloadFinined
=
(
!
[[
info
objectForKey
:
PHImageCancelledKey
]
boolValue
]
&&
!
[
info
objectForKey
:
PHImageErrorKey
]);
if
(
downloadFinined
&&
result
)
{
result
=
[
self
fixOrientation
:
result
];
...
...
@@ -434,11 +434,11 @@ static dispatch_once_t onceToken;
}];
}
-
(
void
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
[
self
getOriginalPhotoDataWithAsset
:
asset
progressHandler
:
nil
completion
:
completion
];
-
(
PHImageRequestID
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
return
[
self
getOriginalPhotoDataWithAsset
:
asset
progressHandler
:
nil
completion
:
completion
];
}
-
(
void
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
-
(
PHImageRequestID
)
getOriginalPhotoDataWithAsset
:(
PHAsset
*
)
asset
progressHandler
:(
void
(
^
)(
double
progress
,
NSError
*
error
,
BOOL
*
stop
,
NSDictionary
*
info
))
progressHandler
completion
:(
void
(
^
)(
NSData
*
data
,
NSDictionary
*
info
,
BOOL
isDegraded
))
completion
{
PHImageRequestOptions
*
option
=
[[
PHImageRequestOptions
alloc
]
init
];
option
.
networkAccessAllowed
=
YES
;
if
([[
asset
valueForKey
:
@"filename"
]
hasSuffix
:
@"GIF"
])
{
...
...
@@ -447,7 +447,7 @@ static dispatch_once_t onceToken;
}
[
option
setProgressHandler
:
progressHandler
];
option
.
deliveryMode
=
PHImageRequestOptionsDeliveryModeHighQualityFormat
;
[[
PHImageManager
defaultManager
]
requestImageDataForAsset
:
asset
options
:
option
resultHandler
:^
(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
)
{
return
[[
PHImageManager
defaultManager
]
requestImageDataForAsset
:
asset
options
:
option
resultHandler
:^
(
NSData
*
imageData
,
NSString
*
dataUTI
,
UIImageOrientation
orientation
,
NSDictionary
*
info
)
{
BOOL
downloadFinined
=
(
!
[[
info
objectForKey
:
PHImageCancelledKey
]
boolValue
]
&&
!
[
info
objectForKey
:
PHImageErrorKey
]);
if
(
downloadFinined
&&
imageData
)
{
if
(
completion
)
completion
(
imageData
,
info
,
NO
);
...
...
TZImagePickerController/ViewController.m
View file @
f9c4d10b
...
...
@@ -563,13 +563,14 @@
}
for (NSInteger i = 0; i < assets.count; i++) {
PHAsset *asset = assets[i];
[[TZImageManager manager] getOriginalPhotoWithAsset:asset completion:^(UIImage *photo, NSDictionary *info) {
PHImageRequestID requestId =
[[TZImageManager manager] getOriginalPhotoWithAsset:asset completion:^(UIImage *photo, NSDictionary *info) {
finishCount += 1;
[originalPhotos replaceObjectAtIndex:i withObject:photo];
if (finishCount >= assets.count) {
NSLog(@"All finished.");
}
}];
NSLog(@"requestId: %d", requestId);
}
*/
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment