keep fiddling with PHAssetImage
- ID
daa445e- date
2023-06-09 06:36:56+00:00- author
Alex Chan <alex@alexwlchan.net>- parent
d9b30e5- message
keep fiddling with PHAssetImage- changed files
5 files, 10 additions, 41 deletions
Changed files
BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj (26643) → BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj (26649)
diff --git a/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj b/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj
index dbb95b8..05161e6 100644
--- a/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj
+++ b/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj
@@ -18,7 +18,7 @@
94D7510C2A31A798005859E7 /* BlinkReviewerUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7510B2A31A798005859E7 /* BlinkReviewerUITests.swift */; };
94D7510E2A31A798005859E7 /* BlinkReviewerUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7510D2A31A798005859E7 /* BlinkReviewerUITestsLaunchTests.swift */; };
94D7511C2A31A7B1005859E7 /* ThumbnailImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7511B2A31A7B1005859E7 /* ThumbnailImage.swift */; };
- 94D7511E2A31B243005859E7 /* PreviewImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7511D2A31B243005859E7 /* PreviewImage.swift */; };
+ 94D7511E2A31B243005859E7 /* FullSizeImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7511D2A31B243005859E7 /* FullSizeImage.swift */; };
94D751202A31B53E005859E7 /* AlbumInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7511F2A31B53E005859E7 /* AlbumInfo.swift */; };
94D751222A31BD8E005859E7 /* PhotoReviewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D751212A31BD8E005859E7 /* PhotoReviewer.swift */; };
94D7512B2A31D6AC005859E7 /* AssetHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */; };
@@ -58,7 +58,7 @@
94D7510B2A31A798005859E7 /* BlinkReviewerUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkReviewerUITests.swift; sourceTree = "<group>"; };
94D7510D2A31A798005859E7 /* BlinkReviewerUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkReviewerUITestsLaunchTests.swift; sourceTree = "<group>"; };
94D7511B2A31A7B1005859E7 /* ThumbnailImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThumbnailImage.swift; sourceTree = "<group>"; };
- 94D7511D2A31B243005859E7 /* PreviewImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewImage.swift; sourceTree = "<group>"; };
+ 94D7511D2A31B243005859E7 /* FullSizeImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullSizeImage.swift; sourceTree = "<group>"; };
94D7511F2A31B53E005859E7 /* AlbumInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumInfo.swift; sourceTree = "<group>"; };
94D751212A31BD8E005859E7 /* PhotoReviewer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoReviewer.swift; sourceTree = "<group>"; };
94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssetHelpers.swift; sourceTree = "<group>"; };
@@ -161,7 +161,7 @@
isa = PBXGroup;
children = (
94D7511B2A31A7B1005859E7 /* ThumbnailImage.swift */,
- 94D7511D2A31B243005859E7 /* PreviewImage.swift */,
+ 94D7511D2A31B243005859E7 /* FullSizeImage.swift */,
94D7511F2A31B53E005859E7 /* AlbumInfo.swift */,
94D751212A31BD8E005859E7 /* PhotoReviewer.swift */,
94D7512F2A31DC4A005859E7 /* ThumbnailList.swift */,
@@ -314,7 +314,7 @@
94D7512B2A31D6AC005859E7 /* AssetHelpers.swift in Sources */,
94D2C8BD2A32796500BEE15B /* AlbumHelpers.swift in Sources */,
94D2C8BF2A3299BD00BEE15B /* PhotosLibrary.swift in Sources */,
- 94D7511E2A31B243005859E7 /* PreviewImage.swift in Sources */,
+ 94D7511E2A31B243005859E7 /* FullSizeImage.swift in Sources */,
94D750F02A31A796005859E7 /* BlinkReviewerApp.swift in Sources */,
94D751202A31B53E005859E7 /* AlbumInfo.swift in Sources */,
94D751302A31DC4A005859E7 /* ThumbnailList.swift in Sources */,
BlinkReviewer/BlinkReviewer/Views/PreviewImage.swift (1035) → BlinkReviewer/BlinkReviewer/Views/FullSizeImage.swift (1111)
diff --git a/BlinkReviewer/BlinkReviewer/Views/PreviewImage.swift b/BlinkReviewer/BlinkReviewer/Views/FullSizeImage.swift
similarity index 95%
rename from BlinkReviewer/BlinkReviewer/Views/PreviewImage.swift
rename to BlinkReviewer/BlinkReviewer/Views/FullSizeImage.swift
index c78ca72..ad5a9af 100644
--- a/BlinkReviewer/BlinkReviewer/Views/PreviewImage.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/FullSizeImage.swift
@@ -8,12 +8,13 @@
import Photos
import SwiftUI
-struct PreviewImage: View {
+struct FullSizeImage: View {
var asset: PHAsset
@ObservedObject var image: PHAssetImage = PHAssetImage(nil, size: PHImageManagerMaximumSize)
init(asset: PHAsset) {
+ print("Calling FullSizeImage.init() for \(asset.localIdentifier)")
self.asset = asset
self.image = PHAssetImage(asset, size: PHImageManagerMaximumSize)
}
BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift (4062) → BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift (4063)
diff --git a/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift b/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift
index b0dbbff..78abb26 100644
--- a/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift
@@ -19,7 +19,7 @@ struct PhotoReviewer: View {
ThumbnailList(selectedAssetIndex: $selectedAssetIndex)
.environmentObject(photosLibrary)
- PreviewImage(asset: photosLibrary.assets[selectedAssetIndex])
+ FullSizeImage(asset: photosLibrary.assets[selectedAssetIndex])
.background(.black)
}.onAppear {
NSEvent.addLocalMonitorForEvents(matching: .keyDown) { event in
BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift (3377) → BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift (2433)
diff --git a/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift b/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift
index 733030e..195cf40 100644
--- a/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift
@@ -13,7 +13,7 @@ import Photos
/// The image will be expanded to fill the square, and may be clipped
/// if the original aspect ratio isn't square.
struct ThumbnailImage: View {
- @State var thumbnail: NSImage
+ @ObservedObject var thumbnail: PHAssetImage
var state: ReviewState?
var isFavorite: Bool
var isSelected: Bool
@@ -27,7 +27,7 @@ struct ThumbnailImage: View {
}
var body: some View {
- Image(nsImage: thumbnail)
+ Image(nsImage: thumbnail.image)
.resizable()
.saturation(state == .Rejected ? 0.0 : 1.0)
// Note: it's taken several attempts to get this working correctly;
@@ -71,35 +71,3 @@ struct ThumbnailImage: View {
}
}
}
-
-struct ThumbnailImage_Previews: PreviewProvider {
- static var previews: some View {
- ThumbnailImage(
- thumbnail: NSImage(named: "IMG_5934")!,
- state: .Approved,
- isFavorite: true,
- isSelected: true
- ).previewDisplayName("approved, favorite")
-
- ThumbnailImage(
- thumbnail: NSImage(named: "IMG_5934")!,
- state: .Rejected,
- isFavorite: false,
- isSelected: false
- ).previewDisplayName("rejected")
-
- ThumbnailImage(
- thumbnail: NSImage(named: "IMG_5934")!,
- state: .NeedsAction,
- isFavorite: false,
- isSelected: false
- ).previewDisplayName("needs action")
-
- ThumbnailImage(
- thumbnail: NSImage(named: "IMG_5934")!,
- state: nil,
- isFavorite: false,
- isSelected: false
- ).previewDisplayName("no state")
- }
-}
BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift (3010) → BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift (3046)
diff --git a/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift b/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift
index 01f2692..90ebe4e 100644
--- a/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift
@@ -33,7 +33,7 @@ struct ThumbnailList: View {
// the thumbnails every time you change position.
ForEach(Array(displayAssets().enumerated()), id: \.element.localIdentifier) { index, asset in
ThumbnailImage(
- thumbnail: asset.getThumbnail(),
+ thumbnail: PHAssetImage(asset, size: CGSize(width: 70, height: 70)),
state: asset.state(),
isFavorite: asset.isFavorite,
isSelected: displayAssets()[displaySelectedAssetIndex()].localIdentifier == asset.localIdentifier