Skip to content
Snippets Groups Projects
Commit 12887fab authored by Semyon Krestyaninov's avatar Semyon Krestyaninov :dog2:
Browse files

wip

parent 0b85a13e
No related branches found
No related tags found
1 merge request!85Draft: Изменена спецификация Images, добавлены параметры получения изображений и команды для обработки
......@@ -6,9 +6,34 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/images;images";
package images;
// Команда для обрезки изображения
message CropCommand {
int64 width = 1;
int64 height = 2;
string resampling = 3;
}
// Команда для подгонки изображения под заданные размеры
message FitCommand {
int64 width = 1;
int64 height = 2;
string resampling = 3;
}
// Команда для изменения размера изображения
message ResizeCommand {
int64 width = 1;
int64 height = 2;
string resampling = 3;
}
// Общая команда для обработки изображения
message Command {
string op = 1;
repeated string value = 2;
oneof command_type {
CropCommand crop = 1;
FitCommand fit = 2;
ResizeCommand resize = 3;
}
}
message GetRequest {
......@@ -20,22 +45,22 @@ message GetRequest {
repeated Command commands = 2;
// Название пресета, предустановленные параметры которого будут использоваться по умолчанию.
optional string preset = 3;
string preset = 3;
// Целевой формат изображения, в который будет преобразовано исходное изображение.
optional string format = 4;
string format = 4;
// Качество изображения. Значение от 1 до 100.
optional int32 quality = 5;
int32 quality = 5;
// Тип изображения для оптимизации. Поддерживается для форматов: webp.
optional string hint = 6;
string hint = 6;
// Режим масштабирования для команд, связанных с изменением размера изображения.
optional string resampling = 7;
string resampling = 7;
// Флаг, указывающий, нужно ли сохранять изображение в кэше.
optional bool no_cache = 8;
bool no_cache = 8;
}
files.File source = 1;
......@@ -49,21 +74,6 @@ message GetResponse {
// ImageService - сервис для обработки изображений
service Images {
// Применяет переданные команды и параметры к файлу, идентификатор которого передан в запросе.
//
// Команды выполняются в порядке их передачи.
// Поддерживаемые команды:
// - crop (ширина, высота, режим масштабирования (опционально))
// - fit (ширина, высота, режим масштабирования (опционально))
// - resize (ширина, высота, режим масштабирования (опционально))
// - format (один из форматов: jpeg, png, gif, tiff, bmp)
// Параметры команды должны быть разделены знаком тире (-).
// Размеры могут быть указаны в следующих форматах:
// - 128-128 (старый формат)
// - 128x128 (новый формат)
// - 128x (только ширина)
// - x128 (только высота)
// Возвращает объект File с заполненным полем File.URL
// Применяет команды и параметры к файлу и возвращает объект File с заполненным полем URL
rpc Get(GetRequest) returns(GetResponse) {}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment