Skip to content

A single-file library for working with Apple Live Photos. Forked to make an SPM package.

Notifications You must be signed in to change notification settings

edonv/LivePhoto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LivePhotoIcon

LivePhoto.swift

A single-file helper library to work with Apple Live Photos

A Live Photo is a paired camera photo ("key photo") and video recording ("paired video"). Learn more about Live Photos from our in-depth blog post.

Live Photo format

A Live Photo consists of two resources paired using an asset identifier (a UUID string):

  1. JPEG image with special metadata for kCGImagePropertyMakerAppleDictionary with [17 : assetIdentifier]
  2. Quicktime MOV with
    1. Quicktime metadata for ["com.apple.quicktime.content.identifier" : assetIdentifier]
    2. Timed metadata track with ["com.apple.quicktime.still-image-time" : 0xFF]. This lets the system know where the still image sits in the movie timeline.

LivePhoto.swift

The entire library is contained in the LivePhoto.swift file:

Extracting Resources from PHLivePhoto

LivePhoto.extractResources(from: livePhoto, completion: resources -> Void) {
  let pairedImageURL = resources.pairedImageURL
  let pairedVideoURL = resources.pairedVideoURL
}

Generating a Live Photo & Saving it to the Photo Library

LivePhoto.generate(from: photoURL, videoURL: videoURL, progress: { percent in }, completion: { livePhoto, resources in
  // Display the Live Photo in a PHLivePhotoView
  livePhotoView.livePhoto = livePhoto
  // Or save the resources to the Photo library
  LivePhoto.saveToLibrary(resources)
  })

About

A single-file library for working with Apple Live Photos. Forked to make an SPM package.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Languages

  • Swift 100.0%