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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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