Обработка изображений и изменение их размера на сервере Ktor

#kotlin #ktor

#kotlin #ктор

Вопрос:

Я пытаюсь получить изображение с помощью сервера Ktor и обработать его, все библиотеки Android не работают, поскольку они используют такие вещи, как BitmapFactory, java.awt. * , Буферизованные изображения и т. Д. Есть ли у Ktor какой-либо набор инструментов для обработки изображений? Чего я пытаюсь добиться, так это получить изображение и изменить его размер.

Ответ №1:

У Ktor нет ничего конкретного для обработки изображений. Потому что это не обязательно.

BufferedImage не является библиотекой Android. Это часть java.awt , и вы можете использовать его в коде Ktor. То же самое для javax.imageio.ImageIO . Единственная часть, которую вы не можете использовать, — это BitmapFactory , поскольку она является частью Android SDK.

Что касается части, как получить начальную загрузку (поскольку вы используете Ktor, вероятно, это то, что вы хотите), вы можете посмотреть здесь: https://ktor.io/servers/uploads.html

Это должно работать на Kotlin JVM:

 import javax.imageio.*
import java.io.*

fun main() {
    val image = ImageIO.read(File(""))
}
 

Комментарии:

1. Пока безуспешно пытаюсь найти какие-либо порты для следующих библиотек (

2. javax является частью стандартного дистрибутива Java. Вам не нужно искать его порты.

3. Не удалось использовать его при чистой установке Ktor, неудивительно, что это единственный Kotlin

4. Является ли он родным для Kotlin? Не существует такого понятия, как «только Kotlin», поскольку Kotlin для JVM использует классы Java. Вы можете видеть, что это работает: play.kotlinlang.org /…

5. Вы правы в том, что tor не должен обрабатывать это, поэтому я собираюсь отметить ваш ответ как правильный

Ответ №2:

1 — Получение файла изображения: как указал Алексей Сошин, используйте все, что вам нужно, для чтения / получения изображения

2 — Обработка (изменение размера изображения): использование библиотеки, такой как thumbnailator

см. Пример:

введите описание изображения здесь