mirror of
https://github.com/Luzifer/cloudkeys-go.git
synced 2024-11-10 07:00:08 +00:00
162 lines
3.4 KiB
Protocol Buffer
162 lines
3.4 KiB
Protocol Buffer
syntax = "proto2";
|
|
option go_package = "image";
|
|
|
|
package appengine;
|
|
|
|
message ImagesServiceError {
|
|
enum ErrorCode {
|
|
UNSPECIFIED_ERROR = 1;
|
|
BAD_TRANSFORM_DATA = 2;
|
|
NOT_IMAGE = 3;
|
|
BAD_IMAGE_DATA = 4;
|
|
IMAGE_TOO_LARGE = 5;
|
|
INVALID_BLOB_KEY = 6;
|
|
ACCESS_DENIED = 7;
|
|
OBJECT_NOT_FOUND = 8;
|
|
}
|
|
}
|
|
|
|
message ImagesServiceTransform {
|
|
enum Type {
|
|
RESIZE = 1;
|
|
ROTATE = 2;
|
|
HORIZONTAL_FLIP = 3;
|
|
VERTICAL_FLIP = 4;
|
|
CROP = 5;
|
|
IM_FEELING_LUCKY = 6;
|
|
}
|
|
}
|
|
|
|
message Transform {
|
|
optional int32 width = 1;
|
|
optional int32 height = 2;
|
|
optional bool crop_to_fit = 11 [default = false];
|
|
optional float crop_offset_x = 12 [default = 0.5];
|
|
optional float crop_offset_y = 13 [default = 0.5];
|
|
|
|
optional int32 rotate = 3 [default = 0];
|
|
|
|
optional bool horizontal_flip = 4 [default = false];
|
|
|
|
optional bool vertical_flip = 5 [default = false];
|
|
|
|
optional float crop_left_x = 6 [default = 0.0];
|
|
optional float crop_top_y = 7 [default = 0.0];
|
|
optional float crop_right_x = 8 [default = 1.0];
|
|
optional float crop_bottom_y = 9 [default = 1.0];
|
|
|
|
optional bool autolevels = 10 [default = false];
|
|
|
|
optional bool allow_stretch = 14 [default = false];
|
|
}
|
|
|
|
message ImageData {
|
|
required bytes content = 1 [ctype=CORD];
|
|
optional string blob_key = 2;
|
|
|
|
optional int32 width = 3;
|
|
optional int32 height = 4;
|
|
}
|
|
|
|
message InputSettings {
|
|
enum ORIENTATION_CORRECTION_TYPE {
|
|
UNCHANGED_ORIENTATION = 0;
|
|
CORRECT_ORIENTATION = 1;
|
|
}
|
|
optional ORIENTATION_CORRECTION_TYPE correct_exif_orientation = 1
|
|
[default=UNCHANGED_ORIENTATION];
|
|
optional bool parse_metadata = 2 [default=false];
|
|
optional int32 transparent_substitution_rgb = 3;
|
|
}
|
|
|
|
message OutputSettings {
|
|
enum MIME_TYPE {
|
|
PNG = 0;
|
|
JPEG = 1;
|
|
WEBP = 2;
|
|
}
|
|
|
|
optional MIME_TYPE mime_type = 1 [default=PNG];
|
|
optional int32 quality = 2;
|
|
}
|
|
|
|
message ImagesTransformRequest {
|
|
required ImageData image = 1;
|
|
repeated Transform transform = 2;
|
|
required OutputSettings output = 3;
|
|
optional InputSettings input = 4;
|
|
}
|
|
|
|
message ImagesTransformResponse {
|
|
required ImageData image = 1;
|
|
optional string source_metadata = 2;
|
|
}
|
|
|
|
message CompositeImageOptions {
|
|
required int32 source_index = 1;
|
|
required int32 x_offset = 2;
|
|
required int32 y_offset = 3;
|
|
required float opacity = 4;
|
|
|
|
enum ANCHOR {
|
|
TOP_LEFT = 0;
|
|
TOP = 1;
|
|
TOP_RIGHT = 2;
|
|
LEFT = 3;
|
|
CENTER = 4;
|
|
RIGHT = 5;
|
|
BOTTOM_LEFT = 6;
|
|
BOTTOM = 7;
|
|
BOTTOM_RIGHT = 8;
|
|
}
|
|
|
|
required ANCHOR anchor = 5;
|
|
}
|
|
|
|
message ImagesCanvas {
|
|
required int32 width = 1;
|
|
required int32 height = 2;
|
|
required OutputSettings output = 3;
|
|
optional int32 color = 4 [default=-1];
|
|
}
|
|
|
|
message ImagesCompositeRequest {
|
|
repeated ImageData image = 1;
|
|
repeated CompositeImageOptions options = 2;
|
|
required ImagesCanvas canvas = 3;
|
|
}
|
|
|
|
message ImagesCompositeResponse {
|
|
required ImageData image = 1;
|
|
}
|
|
|
|
message ImagesHistogramRequest {
|
|
required ImageData image = 1;
|
|
}
|
|
|
|
message ImagesHistogram {
|
|
repeated int32 red = 1;
|
|
repeated int32 green = 2;
|
|
repeated int32 blue = 3;
|
|
}
|
|
|
|
message ImagesHistogramResponse {
|
|
required ImagesHistogram histogram = 1;
|
|
}
|
|
|
|
message ImagesGetUrlBaseRequest {
|
|
required string blob_key = 1;
|
|
|
|
optional bool create_secure_url = 2 [default = false];
|
|
}
|
|
|
|
message ImagesGetUrlBaseResponse {
|
|
required string url = 1;
|
|
}
|
|
|
|
message ImagesDeleteUrlBaseRequest {
|
|
required string blob_key = 1;
|
|
}
|
|
|
|
message ImagesDeleteUrlBaseResponse {
|
|
}
|