Anlamak Core Image Image

Core Image Apple'ın yüksek performanslı görüntü işleme çerçevesi, inşa edilmiş filtreler, renkli ayarlamalar ve depolama işlemleri ile ilgili zengin bir koleksiyon sağlayan ve GPU Hızlandırma işlemlerinin gerçek zamanlı performansı sunmak için, iOS'ta uygun fotoğraf düzenleme uygulamaları oluşturmak için idealdir.

Core Image, bulanık etkiler, renk ayarlamaları, bozulma etkileri, stilizasyon filtreleri ve geçiş etkileri dahil 200'den fazla filtreyi destekler.Her filtre, davranışı kontrol eden anahtar parametreleri kabul eder, örneğin, yarıçap veya renk. çerçeve aynı zamanda karmaşık görüntü işleme hatları oluşturmanıza olanak sağlar.

Geliştirme Çevrenizi Ayarlayın

Fotoğraf düzenleme uygulamanızı geliştirmeye başlamak için, Mac App Store'dan Xcode'un son versiyonunu kurarak başlayın. iOS App şablonu seçerek Swift'i programlama dili olarak seçin ve tercihinize bağlı olarak ChromeUI'u tercih edin.Projeniz oluşturulduğun dosyalarda Core Image framework'i ithal edin:

[FONTD][3][/FONT][/FONT][/FONT][/FONT][/FONT][/FONT][/FONT)

Ayrıca UI bileşenleri için, 03: 5) gibi diğer çerçeveleri ithal etmeniz gerekebilir, fotoğraf kütüphanesine erişmek için ve [[DÜT:6) donanım hızlandırmayı veya özel Metal tabanlı filtreler kullanmayı planlasanız, dağıtım hedefinizi iOS 13 veya daha sonra modern Core Image özelliklerini tam olarak kullanmak için ayarlanır.

Bağlanmalara bağlı olarak yükleme

Core Image'yi özel filtrelerle genişletmeyi planlıyorsanız veya ek işlevsellik için üçüncü taraf kütüphaneleri entegre ederseniz, Swift Paket Yöneticisi veya CocoaPods kullanmayı düşünün. Ancak, çoğu standart fotoğraf düzenleme görevi için Core Image's built-in filtreler yeterlidir.Evrensel arayüzü ile kendinizi aileye entegre edin, görüntü kaynaklarını yönetmek için varlık kataloğunu ve kullanıcı arayüzünü döşeme için hikaye tahtasını düşünün.

Kullanıcı Interface'i tasarlayın

İyi tasarlanmış bir kullanıcı arayüzü, fotoğraf düzenleme uygulaması için kritiktir. arayüzü sezgisel, duyarlı ve görsel temiz olmalıdır. Seçilen görüntüyü gösteren birincil bir görüşe başlayın. Aşağıda veya görüntünün yanında, filtre seçimi için bir dizi kontrol noktası yer, yükleme parametreleri ve kurtarma gibi eylemleri gerçekleştirmek.

Bir UICollectionView veya SwiftUI LazyVGrid'i mevcut filtre parmakları için kullanmayı düşünün.Her bir kartalı, kullanıcılarına hızlı bir görsel referans vererek görüntüyü geri döndürebilir.UISlider veya SwiftUI Slider, yoğunluk, parlaklık veya doğrurasyon gibi ayarlamalar için kullanın.

Canlı Ödevü

Canlı bir önizleme uygulamak, görüntüyü gerçek zamanlı olarak kullanıcı ayarlayıcıları olarak güncellemek için gerektirir.Spekt ekran görüntüsünde filtrelenmiş görüntüyü arka kuyruktaki güncelleştirin. Canlı ayarlamalar sırasında orijinal görüntünün tam çözümünde uygulamadan kaçının; bunun yerine, önbellekli bir sürüm kullanın ve kullanıcının düzenleme işlemine yaptığında son filtre zincirini tam olarak uygulayın.

Add Image Selection

Kullanıcıların fotoğraf kütüphanelerinden görüntü seçmelerine izin vermek, sadece görüntülere izin vermek veya iOS 14'te başlatılan yeni sürümler sunmak. ”diyor. ”-))) Modern, asynchronous API'si sunar ve seçiciliği destekleyen birçok seçimi destekler.

[FONT:0) PHPickerViewController:).

(Ey Âdem)

Kullanıcı bir görüntüyü seçtiğinde, varlık verilerini yükleyip UIImage'ı CIImage'ı kullanarak CIImage'ı işlemeye başlamak için.For Images captured directly from the camera, use.

CIImage ve Image Processing Boru ile çalışmak

Core Image, görüntü işleme boru hatlarının bu adımları takip ettiği nesneler üzerinde çalışır. A CIImage, bir dosya URL, ham piksel verileri veya hatta üretilen programmatik olarak kullanılabilir.

  1. [FONT:0)Input:[Dönetici:[Dönetici:0) Kaynak görüntüsünden bir CIImage oluşturun.
  2. [FONT:0) Direkt zincir:[Dönetici:[Dönetici:0) Bir veya daha fazla CIFilter nesneleri CIImage'a uygulayın. Her filtre, parametrelerine dayanan görüntüyü değiştirir.
  3. [FONT:0)Context Rendering:[Dönetici:[Dönetici:0)) Bir CIContext CImage veya Metal bir dokuya dönüştürmek için bir CGImage kullanın.
  4. [FONT:0]Display:[Dönetici:[Dönetici:0) CGImage'ı bir UIImage'a dönüştürür ve bunu UI'de gösterir.

İşte bir UIImage'dan bir CIImage oluşturmak ve onu göstermek bir örnek:

[Kırklar)

CIImage'ı çalışma nesnesi olarak tutmakla, orta uygulama olmadan zincir filtreleri zincirleyebilirsiniz, performans ve görüntü kalitesini koruyabilirsiniz.

CIContext

ESRAT:16, Core Image için kullanım motorudur. GPU veya CPU kaynaklarını yönetir ve gerçek piksel işleme uygular. Donanım hızlandırma için bir Metal cihazı ile CIContext oluşturun:

[Kırklık: 9)

Birçok görüntü veya karmaşık filtre zincirlerini kullanıyorsanız, GPU kaynaklarını yeniden oluşturmak için tek bir CIContext örneği yeniden kullanılabilir.

Uygulamalı Core Image Filtreler

Core Image, Color Optimizement, Blur, Distortion, Stylize ve Transition gibi kategorilere gruplanmış onlarca filtre sunar.Her filtre, bir filtre uygulamak veya filtre uygulamak için, bu genel adımları takip edin:

  1. CIFilter'in bir örneği oluşturmak için,
  2. Giriş görüntüyü kullanarak ayarlayın. ”
  3. Uygun anahtarları kullanarak filtreye özel parametreler ayarlayın. ”, [[FONTD:23) veya özel anahtarlar.
  4. Filtreden CIImage'ı filtrenin [[FONT=FONT=I) mülklerinden alın.

[FONT:0)Example: Bir Vignette Etkisi Uygulayın[Dön 1: 1).

[FONT=FONT=)

Çıktı CIImage aldıktan sonra, CIContext kullanarak bir CGImage'a başvurun:

[Üye: 9/01/2012)

Yaygın olarak Foto Editing için Filtreler

  • [FONT=0)CISepiaTone:[Dönt:[Dönem: 1 ) Sıcak bir sepia tint. Parametre: [FONT: 0,8-12).
  • [FONT:0]CIPhotoEffectNoir: Yüksek riskli siyah-beyaz bir görünüme dönüştürür. giriş görüntünün dışında ayarlanabilir parametreler yoktur.
  • [FONT:0)CIGaussianBlur:) Bir gaussian bulanık Parametreye uygun: [FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=)
  • [FONT=0]Kömert: [Dönetici: [Dönetici: 0:0]))) [FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=
  • [FONT=0)) Renkli Kontroller:[Dönetici:[Döncüler, s.)[[değiştir | kaynağı değiştir], [[Dönemliler, s.
  • [FONT:0)İlyade:[Dönem:[Dönem:) Parametre: [Düzgölen değeri).
  • [FONT:0)Yüksek ışıkShadowAdjust: [Dönler: [Dönler: 1 ) Kontroller ve gölgeler. Parametreler: [FONTDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ

Mevcut filtreler için, [[0) FRINMA Dokümanlar[Döneticileri[Döneticileri) Apple'ın geliştirici sitesindeki farklı filtrelerle deney.

Bir Filtre Preview Sistemi

Kullanıcıların görsel olarak filtrelerini göz önünde bulundurmasına izin vermek, her filtre için parmak izi oluşturur.Bu yaklaşım, daha küçük bir boyuta (örneğin, 200x200 puan) ve filtreyi alt sürüme uygular.

Birden çok filtre

Gerçek dünya fotoğraf düzenleme genellikle dizide birden fazla ayarlama uygulama gerektirir. Core Image, bir filtrenin çıktısını başka bir şeye dağıtırken beslemeyi destekler. Çünkü CIImage taklit edilemez, yan etkiler olmadan zincir filtreleri kullanabilirsiniz.

[FONT:0)Example: Sepia Tone Vignette) tarafından takip edildi.

⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

Gerekli birçok filtre olarak zincir, ancak performans konusunda dikkatli olun. Her filtre, özellikle gerçek zamanlı önizlemeleri kullanırken. ara sonuçlar için bir kalibrasyon stratejisini kullanmayı düşünün, eğer bireysel filtre adımlarını geri almanız gerekiyorsa.

Bir yapısal olmayan bir yapı oluşturmak

Profesyonel sınıf fotoğraf düzenleme uygulaması için, tahrip edici bir düzenleme hattı uygulayın. Orijinal CIImage ve parametreleri ile uygulanan filtreler listesini yapın. Kullanıcı bir parametre ayarlarken, filtre zincirini orijinal görüntüden yeniden inşa edin ve tüm filtreler uygulayın.Bu yaklaşım görüntü kalitesini korur ve kullanıcının önceki ayarlamalarını tekrarlamasını sağlar.

Kullanıcı Deneyimi Etkileşimli Kontrollerle

Etkileşimli kontroller düzenleme sürecini sezgisel ve keyifli hale getirir. UISlider for continuous or bulanık yarıçap gibi sürekli parametreler için kullanın ve UIA'yı rotasyon artışları gibi ayrı değişiklikler için kullanabilirsiniz. Bind the slider value to the filter parameter and trigger a re-render when the value changes.

[0]Real-Time Slider Örnek:[Dönemli:[Dönemli: 1)

[Kırklar)

For theFL::40) yöntemi, filtre zincirini aşağı bir CIImage'a dönüştürür ve ana thread üzerinde UIImageView'i güncelletir.Samping'i aşırı kullanıma bırakmak için throttling veya debouncing kullanın.

Karşılaştırma Gestures

Yararlı bir UX modeli, önceki ve sonrası karşılaştırmadır.Recognizer veya özel bir UIPanGestureRecognizer'in düzenleme durumunu kontrol etmesine izin veren bir dokunuş-görücü, derlemenin yarısını ortaya çıkarabilir.

Performans Optimizasyonu Performans Optimizasyonu

Performans, düzgün bir fotoğraf düzenleme deneyimi için kritiktir. Core Image GPU-akcelerated, ancak verimsiz kullanımlar özellikle modern iPhone'lardan yüksek çözünürlüklü görüntülerle gecikmeye neden olabilir.Bu optimizasyon stratejileri izleyin:

  • [[Dönetici:0) Tek bir CIContext kullanın:) Birden fazla CIContext örneği oluşturmak pahalı. Uygulama boyunca bir bağlam.
  • [[Downsample for önizleme için:[Downsample for önizleme:[DFLT:1) Canlı düzenleme sırasında, görüntünün aşağılayıcı versiyonuna (örneğin, 1024px on the latest side).Use the full-de image only when the user saves or export.
  • [FONT:0] Arka ipliklerde Render: Core Image işlemleri bir seri arka kuyrukta ve UI güncelleştirmeleri ana kuyrukta yapılır.
  • [FONT:0) Metal forumu kullanmak için:[Dönetici:[Dönetici:0) CIContext'i GPU Hızlandırmak için Metal bir cihazla oluşturun: “Ücretsizliğe sahip olmak için.
  • [FONT=0]Limit filtre zincirleri:[Dönemli önbellekler için, filtre zincirini kısa tut.Eğer kullanıcı birçok filtre uygularsa, bunları tek bir şekilde birleştirin.
  • [FONT:0)Profile with Instruments:[Dönetici:[Dönetici:0) Xcode's Instruments aracını performans şişelerini tanımlamak için kullanır.The Core Animation and GPU şablonları görselleme performansına yardımcı olur.

Memory Management

CIImage nesneler büyük görüntü tamponlarına referans tutabilir.Çalışanlar artık onları nil'e ayarlayarak ihtiyaç duyulmamış olan CIImage nesneleri.Plattlama kullanımı kontrol altında tutmak için sıkı çalışma döngülerini kullanın. son derece büyük görüntüler için, çinli boyamayı göz önüne alın.

Gelişmiş Özellikler Gelişmiş Özellikler

Uygulamanızı öne çıkarmak için, temel filtrelerin ötesinde gelişmiş özellikleri eklemeyi düşünün.

Cropping ve Rotating

Kullanım için, ekinler için geçerli olan ürün için, aşağıdaki gibi basit 90 derece rotasyonlar için [[Dörtlü ve yeniden kullanılabilir bir ekin çemberi gibi görsel kılavuzlar sağlayın.Ürünler CGRect olarak yeniden dikilir ve filtre zincirinde son adım olarak uygulanır.

Renk Curves ve Seviyeleri Belirlemek

Core Image, gelişmiş renkli grading için gelişmiş renkte grading için yer alan ve temizlenmiş kontrol sağlayan kontrol noktaları sunar.Bu filtreler, özel renk eğrilerini tanımlayan kontrol noktaları kabul eder ve görüntü tonal aralığı üzerinde deneyimli kullanıcılara iyi bir kontrol sağlar.

Face Tespit ve Geliştirme

Yüz algılama için bütünlük: Yüz algılama için, yüz algılama için yerel ayarlamaları uygulayabilirsiniz, kırmızı gözlü düzeltme veya otomatik yönlendirme. CIDetector, her yüz için sadece belirli bölgelere uygulamanızı sağlar.

Tasarruf ve İhracat

Kullanıcı düzenlemeyi tamamladıktan sonra, görüntüyü görüntü verileri kullanarak fotoğraf kütüphaneye kaydedin.Kullanıcıların sosyal medya, mesajlaşma veya diğer uygulamalara paylaşmalarına izin verin.UseENFLT:51) veya .

Uygulamanızı Test Etmek

Farklı ekran boyutları, işleme gücü ve kamera kararları ile çeşitli iOS cihazları test edin. Simülasyonu hızlı iterasyonlar için kullanın, ancak her zaman doğru performans ölçümleri için fiziksel cihazlar üzerinde test edin.Evli önizleme sırasında bellek kullanımı ve çerçeve oranına özel dikkat edin. Filtreleme zinciri mantığı ve anlık testleri iOS sürümlerinde tutarlı kalır.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Core Image ile fotoğraf düzenleme uygulaması, görüntü işleme, UI tasarımı ve performans optimizasyonunu birleştiren bir ödüllendirici bir projedir. Core Image pipeline, Canoning builtFLT:0, Apple Core Image framework belgeleri için optimize etmek [Dön zamanlı performans için, profesyonel ve duyarlı Core Image ile ilgili temelleri ifade eden bir uygulama oluşturabilirsiniz.Bu nedenle, vizyonunuzu eşleştirmek için özellikler ve tasarım üzerine kuruludur.[0|Döneticiler için tıklayınız.)