Skip to content
Snippets Groups Projects

Draft: Изменена спецификация Images, добавлены параметры получения изображений и команды для обработки

+ 51
12
@@ -6,15 +6,61 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/images;images";
package images;
message Param {
string op = 1;
repeated string value = 2;
// Команда для обрезки изображения
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 {
oneof command_type {
CropCommand crop = 1;
FitCommand fit = 2;
ResizeCommand resize = 3;
}
}
message GetRequest {
message GetOptions {
repeated Param params = 1;
reserved 1;
// Команды, которые будут применены к изображению.
repeated Command commands = 2;
// Название пресета, предустановленные параметры которого будут использоваться по умолчанию.
string preset = 3;
// Целевой формат изображения, в который будет преобразовано исходное изображение.
string format = 4;
// Качество изображения. Значение от 1 до 100.
int32 quality = 5;
// Тип изображения для оптимизации. Поддерживается для форматов: webp.
string hint = 6;
// Режим масштабирования для команд, связанных с изменением размера изображения.
string resampling = 7;
// Флаг, указывающий, нужно ли сохранять изображение в кэше.
bool no_cache = 8;
}
files.File source = 1;
@@ -28,13 +74,6 @@ message GetResponse {
// ImageService - сервис для обработки изображений
service Images {
// Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
// Может быть передано несколько параметров, порядок учитывается при обработке
// Допустимые операции:
// - crop (ширина, высота)
// - fit (ширина, высота)
// - resize (ширина, высота)
// - format (один из форматов [ png, jpeg, jpg, gif ]
// Возвращает объект File с заполненным полем File.URL
// Применяет команды и параметры к файлу и возвращает объект File с заполненным полем URL
rpc Get(GetRequest) returns(GetResponse) {}
}
Loading