Swiftui - Ciedgework Filter возвращает пустое изображениеIOS

Программируем под IOS
Anonymous
Swiftui - Ciedgework Filter возвращает пустое изображение

Сообщение Anonymous »

Я пытаюсь применить фильтр Ciedgework в проекте Swiftui, но я получаю пустое (белое) изображение вместо ожидаемого эффекта. Вот моя реализация:
code:
import SwiftUI
import CoreImage
import CoreImage.CIFilterBuiltins

struct EdgeWorkDemo: View {
let context = CIContext()

var body: some View {
VStack {
if let outputImage = applyEdgeWorkFilter() {
Image(uiImage: outputImage)
.resizable()
.scaledToFit()
} else {
Text("No Image")
}
}
}

func applyEdgeWorkFilter() -> UIImage? {
guard let inputImage = UIImage(named: "imgBG") else {
print("❌ Image not found")
return nil
}
guard let ciImage = CIImage(image: inputImage) else {
print("❌ Failed to create CIImage")
return nil
}

let edgeWorkFilter = CIFilter.edgeWork()
edgeWorkFilter.inputImage = ciImage
edgeWorkFilter.radius = 40 // area of effect

guard let resultImage = edgeWorkFilter.outputImage else {
print("❌ Filter output is nil")
return nil
}

let context = CIContext()
if let cgImage = context.createCGImage(resultImage, from: resultImage.extent) {
return UIImage(cgImage: cgImage)
}

print("❌ Failed to create CGImage")
return nil
}
}

struct EdgeWorkDemo_Previews: PreviewProvider {
static var previews: some View {
EdgeWorkDemo()
}
}

< /code>
Что я попробовал: < /strong> < /p>

подтвердил, что «imgbg» присутствует в Каталог активов. Избегайте прозрачных ребра.
выполняется как на симуляторе, так и на реальном устройстве.
фильтр для извлечения краев из изображения, аналогично тому, как он описан в документации:
Apple Docs - ciedgework.
Вопрос: < /p>

Почему Ciedgework возвращает пустое изображение? li>
Есть ли альтернативный способ достижения аналогичного эффекта?
Мое изображение

Подробнее здесь: https://stackoverflow.com/questions/794 ... lank-image

Вернуться в «IOS»