Open Source Swift API для обробки зображень на стороні сервера

Бібліотека Swift для включеної підтримки завантаження, збереження та обробки зображень. Це дозволяє створювати зображення зі спеціальною шириною та висотою, змінювати розмір зображення та обрізати певну частину зображення

SwiftGD — це чудова бібліотека невеликого розміру, яка включає підтримку обробки зображень Swift на стороні сервера. Це фантастична обгортка Swift для libgd, що дозволяє створювати зображення та малювати фігури в місцях, де функціональні можливості Core Graphics недоступні. Бібліотека дуже проста у використанні та може легко завантажувати зображення, зберігати та маніпулювати ними за допомогою коду Swift. Однією з чудових особливостей бібліотеки є те, що вона керує ресурсами GD для користувачів, тому основна пам’ять звільняється, коли зображення знищуються.

Бібліотека містить підтримку кількох важливих функцій, пов’язаних із обробкою зображень, таких як завантаження PNG і JPEG з диска, збереження зображень PNG і JPEG на диску, створення зображень із власною шириною та висотою, підтримка зміни розміру зображення, обрізання певної частини зображення, малювання форм і ліній, подання кольору з координат, горизонтальне або вертикальне гортання зображення, підтримка обведення зображення, малювання або заповнення текстом і багато іншого. Бібліотека також містить кілька важливих ефектів, таких як піксельація, розмиття, розфарбовування, зменшення насиченості тощо. . Бібліотека є відкритим кодом і доступна за ліцензією MIT.

Previous Next

Початок роботи з SwiftGD

Клонуйте найновіші джерела за допомогою наступної команди.

Установіть SwiftGD через Github 

Install SwiftGD via Github 

 $ git clone https://github.com/twostraws/SwiftGD.git

Створення нових зображень за допомогою Swift

Бібліотека Swift з відкритим кодом SwiftGD дозволяє розробникам програмного забезпечення створювати нові зображення лише за допомогою кількох рядків коду Swift. Розробники можуть легко створити зображення з нуля, задавши ширину та висоту зображення. Він також підтримує створення зображень із екземплярів даних. Він також генерує зображення, поки користувачі виконують операцію зміни розміру або обрізання, що означає, що вихідне зображення не буде змінено. Ви також можете легко застосувати деякі основні ефекти до зображень.

Створення нових зображень за допомогою бібліотеки Swift

 import Foundation
import SwiftGD
// figure out where to save our file
let currentDirectory = URL(fileURLWithPath: FileManager().currentDirectoryPath)
let destination = currentDirectory.appendingPathComponent("output-1.png")
// attempt to create a new 500x500 image
if let image = Image(width: 500, height: 500) {
    // flood from from X:250 Y:250 using red
    image.fill(from: Point(x: 250, y: 250), color: Color.red)
    // draw a filled blue ellipse in the center
    image.fillEllipse(center: Point(x: 250, y: 250), size: Size(width: 150, height: 150), color: Color.blue)
    // draw a filled green rectangle also in the center
    image.fillRectangle(topLeft: Point(x: 200, y: 200), bottomRight: Point(x: 300, y: 300), color: Color.green)
    // remove all the colors from the image
    image.desaturate()
    // now apply a dark red tint
    image.colorize(using: Color(red: 0.3, green: 0, blue: 0, alpha: 1))
    // save the final image to disk
    image.write(to: destination)
}

Малювання фігур за допомогою Swift

Бібліотека SwiftGD спрощує розробників програмного забезпечення малювати та маніпулювати фігурами в своїх програмах Swift. Бібліотека надає кілька методів, які можна використовувати для малювання ваших зображень, наприклад застосування заливки від однієї точки до іншої, малювання лінії від однієї точки до іншої, піксельне встановлення конкретної точки, заливка еліпса в центрі , малювати порожній еліпс у центрі, порожній прямокутник, малювати від одного боку до іншого тощо.

Накладки прямокутників через Swift API

 import Foundation
import SwiftGD
let currentDirectory = URL(fileURLWithPath: FileManager().currentDirectoryPath)
let destination = currentDirectory.appendingPathComponent("output-2.png")
if let image = Image(width: 500, height: 500) {
    var counter = 0
    for i in stride(from: 0, to: 250, by: 10) {
        let drawColor: Color
        if counter % 2 == 0 {
            drawColor = .blue
        } else {
            drawColor = .white
        }
        image.fillRectangle(topLeft: Point(x: i, y: i), bottomRight: Point(x: 500 - i, y: 500 - i), color: drawColor)
        counter += 1
    }
    image.blur(radius: 10)
    image.write(to: destination)
}

Маніпуляція зображеннями в програмах Swift

Бібліотека Swift з відкритим кодом SwiftGD дозволяє комп’ютерним програмістам легко працювати із зображеннями в програмах Swift. Бібліотека надає кілька методів, які можна використовувати для застосування ефектів до зображень, таких як застосування ефекту розмиття за Гаусом, застосування відтінків зображення, рендеринг зображення у відтінках сірого, перевертання зображення як горизонтально, так і вертикально, спрощення зображення надто великими пікселями та багато іншого. більше.

Створити Gradient через Swift API

 import Foundation
import SwiftGD
let currentDirectory = URL(fileURLWithPath: FileManager().currentDirectoryPath)
let destination = currentDirectory.appendingPathComponent("output-3.png")
let size = 500
if let image = Image(width: size, height: size) {
    for x in 0 ... size {
        for y in 0 ... size {
            image.set(pixel: Point(x: x, y: y), to: Color(red: Double(x) / Double(size), green: Double(y) / Double(size), blue: 0, alpha: 1))
        }
    }
    image.write(to: destination)
}

Завантаження та читання зображень

Безкоштовна бібліотека Swift SwiftGD надає програмам можливість завантажувати та читати зображення у власних програмах Swift. Для успішного завантаження потрібно вказати розташування образу на диску. Розширення файлу використовується бібліотекою для завантаження правильного формату файлу, тому важливо називати файли "jpg", "jpeg" або "png".

Читання зображень через Swift API

 let location = URL(fileURLWithPath: "/path/to/image.png")
let image = Image(url: location)
 Українська