العمل مع الصور في Swift (iOS/macOS): دليل شامل

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع الصور في Swift (iOS/macOS)

في هذه المقالة، سنستعرض بالتفصيل العمل مع الصور في Swift لمنصتي iOS وmacOS. ستتعلم كيفية تحميل الصور وعرضها ومعالجتها وحفظها باستخدام أطر Apple المدمجة: UIKit (iOS)، AppKit (macOS) و Core Image. ستكون المادة مفيدة لكل من المبتدئين والمطورين ذوي الخبرة.



الأطر الرئيسية للعمل مع الصور

في نظام Apple البيئي، توجد عدة طرق للعمل مع الصور. أهمها:

  • UIKit (iOS/tvOS) — UIImage، UIImageView
  • AppKit (macOS) — NSImage، NSImageView
  • Core Image — إطار قوي لمعالجة الصور (فلاتر، تحويلات)
  • SwiftUI — Image للعرض التصريحي


تحميل الصور في iOS (UIKit)

أسهل طريقة لتحميل صورة في iOS هي استخدام UIImage. مثال على التحميل من الأصول ومن ملف:

// تحميل من Assets.xcassetslet imageFromAssets = UIImage(named: "myImage")

// تحميل من ملف في Bundleif let path = Bundle.main.path(forResource: "photo", ofType: "jpg") { let imageFromFile = UIImage(contentsOfFile: path)}

// تحميل من Dataif let data = try? Data(contentsOf: URL(string: "https://example.com/image.png")!) { let imageFromData = UIImage(data: data)}


عرض الصور في UIKit

لعرض الصورة، يُستخدم UIImageView:

let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))imageView.image = UIImage(named: "example")imageView.contentMode = .scaleAspectFitview.addSubview(imageView)


العمل مع الصور في macOS (AppKit)

في macOS، يُستخدم NSImage و NSImageView:

// تحميل الصورةlet nsImage = NSImage(named: "macImage")

// العرضlet imageView = NSImageView(frame: NSRect(x: 0, y: 0, width: 300, height: 200))imageView.image = nsImageimageView.imageScaling = .scaleProportionallyUpOrDownview.addSubview(imageView)


معالجة الصور باستخدام Core Image

يوفر Core Image عشرات الفلاتر المدمجة. دعنا نستعرض العمليات الأساسية:

import CoreImage

// إنشاء CIImage من UIImageguard let uiImage = UIImage(named: "input"), let ciImage = CIImage(image: uiImage) else { return }

// تطبيق فلتر "التمويه الغاوسي"let filter = CIFilter(name: "CIGaussianBlur")filter?.setValue(ciImage, forKey: kCIInputImageKey)filter?.setValue(10.0, forKey: kCIInputRadiusKey)

// الحصول على النتيجةguard let outputImage = filter?.outputImage else { return }

// التحويل مرة أخرى إلى UIImagelet context = CIContext(options: nil)if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) { let blurredImage = UIImage(cgImage: cgImage)}


الفلاتر الشائعة في Core Image

  • CISepiaTone — تأثير السيبيا
  • CIPhotoEffectMono — تأثير أبيض وأسود
  • CIVignette — التظليل (Vignette)
  • CIColorControls — السطوع، التباين، التشبع
  • CICrop — قص الصورة


العمل مع الصور في SwiftUI

يوفر SwiftUI طريقة بسيطة وتصريحية للعمل مع الصور:

import SwiftUI

struct ContentView: View { var body: some View { Image("swiftui_image") .resizable() .scaledToFit() .frame(width: 200, height: 200) .clipShape(Circle()) .overlay(Circle().stroke(Color.blue, lineWidth: 4)) .shadow(radius: 10) }}

توصيات