Photo Editing Extension: ano ito, mga kakayahan ng extension para sa iOS

May-akda: IT Sectr Nai-publish: 2026-06-15 Oras ng pagbabasa: 9 min

Photo Editing Extension — ay isang mekanismo ng iOS na nagpapahintulot sa mga third-party na application na magdagdag ng mga tool sa pag-edit nang direkta sa system application na Mga Larawan. Hindi tulad ng mga ganap na editor, hindi nilo-load ng extension ang imahe sa isang hiwalay na application — ang gumagamit ay naglalapat ng mga filter, nagwawasto ng mga kulay, o nagdaragdag ng mga epekto nang hindi umaalis sa karaniwang interface. Ayon sa Apple Developer Documentation (2025), ang PhotoKit ay nagbibigay ng higit sa 40 API para sa pagtatrabaho sa mga mapagkukunan ng larawan, kabilang ang PHAdjustmentData at PHContentEditingController.

Pangunahing Punto

  • Photo Editing Extension ay nag-e-embed ng mga tool sa pag-edit sa karaniwang application na Mga Larawan sa iOS nang hindi lumilipat sa pagitan ng mga programa
  • Ang arkitektura ay batay sa protocol na PHContentEditingController, na namamahala sa pagpapakita ng interface at pagkuha ng orihinal na imahe
  • Gumagamit ang extension ng non-destructive editing — lahat ng pagbabago ay nai-save bilang AdjustmentData, at ang orihinal ay nananatiling hindi nagalaw
  • Para sa pagtatrabaho sa imahe, natatanggap ng extension ang PHContentEditingInput na may kumpletong file ng larawan at metadata
  • PhotoKit ay nagbibigay ng access sa mga mapagkukunan ng larawan sa pamamagitan ng PHAsset, PHAssetResource, at PHImageManager

Ano ang Photo Editing Extension sa iOS

Photo Editing Extension — ay isang uri ng app extension sa iOS na nagpapakilala ng mga tool sa pagproseso ng imahe sa karaniwang interface ng application na Mga Larawan. Binuksan ng gumagamit ang isang larawan, pinindot ang button na “I-edit” at pinipili ang nais na extension mula sa listahan ng mga naka-install. Pagkatapos ng pag-edit, ang resulta ay nai-save pabalik sa library, at ang orihinal na file ay nananatiling magagamit para sa pagpapanumbalik.

Ang ganitong arkitektura ay lumulutas sa pangunahing problema ng karanasan ng gumagamit: hindi na kailangang lumipat sa pagitan ng mga application, mag-export at mag-import ng mga imahe, o subaybayan ang mga bersyon. Ayon sa WWDC 2025, lahat ng extension ay gumagana sa isang nakahiwalay na proseso na may sariling sandbox at limitadong oras ng pagpapatupad — hanggang 30 segundo bawat operasyon ng pag-edit.

Ang extension ay walang access sa mga arbitraryong file sa memorya ng device — tanging sa larawan na hayagang ipinadala ng gumagamit sa pamamagitan ng interface ng pagpili. Tinitiyak nito ang seguridad ng data ng gumagamit kapag gumagamit ng mga third-party na tool.

PhotoKit: arkitektura at pangunahing mga bahagi

PhotoKit — ay ang framework ng Apple para sa pagtatrabaho sa media library ng device, na ipinakilala sa iOS 8. Nagbibigay ito ng programmatic access sa mga mapagkukunan ng Mga Larawan, kabilang ang mga larawan, video, album, at metadata. Para sa mga extension ng pag-edit, ang PhotoKit ay nagsisilbing intermediate layer sa pagitan ng imbakan at interface ng pagbabago.

PHAsset at PHAssetResource

PHAsset ay kumakatawan sa isang indibidwal na media object sa library — isang larawan o video. Sa pamamagitan ng PHAsset, maaaring makuha ang metadata: petsa ng pagkuha, uri ng file, lokasyon sa mapa, at oryentasyon ng camera. Ang PHAssetResource ay nagbibigay ng access sa mga pangunahing mapagkukunan — halimbawa, sa orihinal na file ng larawan sa RAW o HEIC na format.

Para sa extension ng pag-edit, ang PHContentEditingInput ay kritikal — isang bagay na naglalaman ng kumpletong file ng imahe (o video) na magagamit para sa pagbabasa at pagproseso. Natatanggap ng extension ang bagay na ito sa sandali ng pag-activate at ginagamit ito bilang materyal na pinagmulan.

PHImageManager at caching

PHImageManager ay namamahala sa pag-load at caching ng mga imahe. Para sa extension ng pag-edit, hindi ito direktang ginagamit — natatanggap ng extension ang kumpletong file sa pamamagitan ng PHContentEditingInput. Gayunpaman, ang PHImageRequestOptions ay nagpapahintulot sa pagsasaayos ng mga parameter ng kahilingan: laki, uri ng paghahatid (synchronous o asynchronous), at format ng resulta.

Ayon sa Apple, ang PHImageManager ay awtomatikong nag-cache ng mga thumbnail ng imahe sa RAM, na nagpapabilis sa muling pagpapakita ng mga preview. Para sa extension ng pag-edit, inirerekomenda ang paggamit ng PHImageRequestOptionsDeliveryModeHighQualityFormat upang makuha ang pinakamahusay na kalidad ng larawan.

swift
let options = PHImageRequestOptions()
options.deliveryMode = .highQualityFormat
options.isSynchronous = true

PHImageManager.default().requestImage(
    for: asset,
    targetSize: .init(width: 1024, height: 1024),
    contentMode: .aspectFill,
    options: options
) { image, _ in
    // gamitin ang imahe para sa pagpapakita
}

Paglikha ng extension: PHContentEditingController

Bawat Photo Editing Extension ay nagpapatupad ng protocol na PHContentEditingController — ang sentral na elemento ng kontrol ng extension. Ang protocol ay tumutukoy ng mga pamamaraan para sa pagpapakita ng interface, pagkuha ng input data, at pag-save ng resulta.

Pangunahing pamamaraan ng protocol

beginContentEditing(with:) ay tinatawag sa pagsisimula ng session ng pag-edit. Natatanggap ng extension ang PHContentEditingInput at dapat magpakita ng interface na may orihinal na imahe. finishContentEditing(completionHandler:) ay nagtatapos ng pag-edit — ibinabalik ng extension ang PHContentEditingOutput na may binagong file at AdjustmentData. cancelContentEditing() ay kinakansela ang mga pagbabago nang hindi nagse-save.

Mahalagang nuance: sa sandali ng pagtawag ng beginContentEditing, ang extension ay may access lamang sa isang bersyon ng larawan — ang bersyon na hiniling ng gumagamit. Hindi ma-access ang ibang larawan o album. Ito ay isang limitasyon ng sandbox na ipinakilala ng Apple para sa seguridad.

swift
class PhotoEditingViewController: UIViewController {

    override func beginContentEditing(
        with input: PHContentEditingInput
    ) {
        guard let url = input.fullSizeImageURL else { return }
        let image = CIImage(contentsOf: url)
        displayImage.image = UIImage(ciImage: image)
    }
}

Arkitektura ng paghihiwalay

PHContentEditingController ay naghihiwalay ng interface ng pag-edit mula sa lohika ng pag-save. Ang pangunahing proseso ng iOS ay tumatawag ng beginContentEditing, ang extension ay nagpapakita ng UI nito, ang gumagamit ay gumagawa ng mga pagbabago, pagkatapos ang finishContentEditing ay lumilikha ng bagong file. Inirerekomenda ng Apple na ang lahat ng masinsinang pagproseso ng mapagkukunan — mga filter ng CIFilter, manipulasyon ng Core Image — ay isagawa sa background thread, hindi sa pangunahing thread, upang hindi harangan ang interface.

Non-destructive editing sa pamamagitan ng AdjustmentData

PHAdjustmentData — pangunahing mekanismo na nagbibigay-daan sa non-destructive editing sa Photo Editing Extension. Ito ay isang bagay na naglalaman ng impormasyon tungkol sa mga inilapat na pagbabago sa isang arbitraryong format. Sineseryalize ng extension ang mga parameter ng filter, mask, at setting sa AdjustmentData at ini-save ang mga ito kasama ng binagong imahe.

Sa muling pagbubukas ng larawan, binabasa ng extension ang AdjustmentData, ibinabalik ang dating estado ng interface, at pinapayagan ang gumagamit na ipagpatuloy ang pag-edit mula sa parehong lugar. Kung hindi naka-install ang extension — ang larawan ay ipinapakita sa huling naka-save na bersyon, at ang orihinal ay iniimbak nang hiwalay.

Ayon sa Apple Documentation, ang PHAdjustmentData ay nag-iimbak ng formatIdentifier at formatVersion — mga string para sa pagkilala ng format ng data. Kapag nag-a-update ng extension, dapat suriin ang bersyon at wastong iproseso ang mga lumang format.

swift
let adjustmentData = PHAdjustmentData(
    formatIdentifier: "com.example.photoediting",
    formatVersion: "1.0",
    data: NSKeyedArchiver.archivedData(
        withRootObject: params,
        requiringSecureCoding: true
    )
)
output.adjustmentData = adjustmentData

Sa sandali ng finishContentEditing, isinusulat ng extension ang AdjustmentData sa object na PHContentEditingOutput kasama ang binagong file ng imahe. Ang sistema pagkatapos ay ini-save ang parehong bahagi: ang bersyon para sa pagpapakita at ang metadata para sa pagpapanumbalik ng session ng pag-edit.

Integrasyon sa application na Mga Larawan

Ang Photo Editing Extension ay awtomatikong lumalabas sa menu ng application na Mga Larawan pagkatapos i-install ang application na naglalaman nito. Binuksan ng gumagamit ang isang larawan, pinipili ang “I-edit”, at sa ibabang hilera ng mga tool ay ipinapakita ang lahat ng naka-install na extension ng pag-edit — parehong sistema at third-party.

Pagpaparehistro ng extension

Ang extension ay nagparehistro sa pamamagitan ng Info.plist ng pangunahing application na may key na NSExtensionActivationRule, na tumutukoy kung anong mga uri ng nilalaman ang nag-activate ng extension. Para sa editor ng larawan, ang ActivationRule ay karaniwang nangangailangan ng image — ang extension ay hindi ipapakita para sa video o live na mga larawan.

Inirerekomenda ng Apple na tukuyin ang mga tiyak na uri ng pag-activate upang hindi ma-overload ang menu ng pag-edit. Kung ang extension ay sumusuporta lamang ng JPEG at HEIC, nararapat na limitahan ang pag-activate sa mga format na ito.

xml
<!-- Info.plist -->
<key>NSExtension</key>
<dict>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.photo-editing</string>
    <key>NSExtensionActivationRule</key>
    <string>SUBQUERY (extensionItems,
        @count <= 1)</string>
</dict>

Pakikipag-ugnayan sa gumagamit

Pagkatapos pumili ng extension, ang iOS ay lumilikha ng isang hiwalay na proseso na may custom na UIViewController na ipinapakita sa ibabaw ng interface ng Mga Larawan. Nakikita ng gumagamit ang kanyang larawan, mga tool ng extension, at mga button na “Kanselahin” / “Tapos”. Hindi mababago ng extension ang nabigasyon sa labas ng controller nito o ma-access ang ibang bahagi ng sistema.

Ayon sa Human Interface Guidelines ng Apple, ang interface ng extension ay dapat minimal at functional — walang mga advertisement, panlabas na link, at labis na elemento ng nabigasyon. Inirerekomenda ang paggamit ng UIScrollView para sa pagpapakita ng palette ng tool upang hindi magulo ang screen.

Mga Madalas Itanong

Paano nakakakuha ng access ang Photo Editing Extension sa larawan?

Natatanggap ng extension ang PHContentEditingInput na may URL ng kumpletong file ng imahe sa pamamagitan ng pamamaraang beginContentEditing(with:). Ang access ay ibinibigay lamang sa isang napiling larawan — walang karapatan sa ibang mga mapagkukunan ng library.

Maaari bang baguhin ng extension ang orihinal ng larawan?

Hindi, ang orihinal ay hindi kailanman binabago. Lumilikha ang extension ng bagong bersyon sa pamamagitan ng PHContentEditingOutput, at iniimbak ng AdjustmentData ang mga parameter ng pagbabago para sa posibilidad ng pagbabalik sa orihinal na estado.

Anong mga uri ng file ang sinusuportahan ng Photo Editing Extension?

Gumagana ang extension sa lahat ng format na sinusuportahan ng PhotoKit: JPEG, HEIC, RAW, PNG, TIFF, at Live Photos. Ang mga limitasyon ay itinakda sa pamamagitan ng NSExtensionActivationRule sa Info.plist ng extension.

Gaano karaming oras ang ibinibigay para sa pag-edit?

Ang iOS ay naglalaan ng hanggang 30 segundo para sa pagsasagawa ng operasyon ng finishContentEditing. Kung lumampas sa limitasyon, ang extension ay sapilitang tinatapos, at ang mga pagbabago ay hindi nai-save. Ang pagproseso sa background gamit ang CIFilter ay hindi nagpapahaba ng oras na ito.

Maaari bang gamitin ang Core Image at Metal sa extension?

Oo, ang Core Image (CIFilter) at Metal (para sa custom na shader) ay ganap na sinusuportahan. Inirerekomenda ng Apple na ilipat ang mabibigat na pagkalkula sa mga background thread sa pamamagitan ng Grand Central Dispatch.

Buod

  • Photo Editing Extension — ay isang naka-embed na tool sa pag-edit sa application na Mga Larawan na gumagana nang hindi lumilipat sa pagitan ng mga application
  • Ginagamit ng arkitektura ang PHContentEditingController para sa pamamahala ng session ng pag-edit at pagkuha ng input data
  • PhotoKit ay nagbibigay ng PHAsset, PHImageManager, at PHContentEditingInput para sa access sa mga mapagkukunan ng media ng device
  • PHAdjustmentData ay tumitiyak ng non-destructive editing — serialization ng mga parameter ng pagbabago na may posibilidad ng pagpapanumbalik
  • Ang extension ay gumagana sa sandbox na may limitasyong 30 segundo at access lamang sa isang larawan bawat session
  • Sinusuportahan ang Core Image, Metal, at lahat ng format ng PhotoKit: JPEG, HEIC, RAW, PNG, TIFF, at Live Photos

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din