本文目录导读:

我来详细介绍ImageTranscodeParam(图片转码参数)的配置信息。
基本结构
class ImageTranscodeParam:
def __init__(self):
self.format = None # 输出格式
self.quality = None # 质量参数
self.size = None # 输出尺寸
self.resize_strategy = None # 缩放策略
self.crop = None # 裁剪参数
self.rotate = None # 旋转参数
self.watermark = None # 水印参数
self.color = None # 颜色调整
self.compression = None # 压缩级别
常见配置参数
格式转换 (format)
# 支持的格式
formats = [
"jpeg", # JPEG格式
"png", # PNG格式
"webp", # WebP格式
"bmp", # BMP格式
"gif", # GIF格式
"tiff", # TIFF格式
"avif", # AVIF格式
"heif", # HEIF格式
]
# 配置示例
param.format = "webp" # 转换为WebP格式
质量设置 (quality)
# 质量范围 1-100 param.quality = 80 # 设置质量为80% # 不同格式的质量含义 # JPEG: 压缩质量 (1-100) # WebP: 压缩质量 (0-100) # PNG: 无损压缩级别 (0-9)
尺寸调整 (size)
# 方法1:固定尺寸 param.size = (1920, 1080) # (宽度, 高度) # 方法2:限制最大尺寸 param.size = (1920, 0) # 宽度固定1920,高度自适应 param.size = (0, 1080) # 高度固定1080,宽度自适应 # 方法3:百分比缩放 param.size = (0.5, 0.5) # 缩小50%
缩放策略 (resize_strategy)
from enum import Enum
class ResizeStrategy(Enum):
FIT = "fit" # 适应,保持比例
FILL = "fill" # 填充,可能变形
CROP = "crop" # 裁剪
PAD = "pad" # 填充背景
# 配置示例
param.resize_strategy = ResizeStrategy.FIT
裁剪参数 (crop)
# 配置裁剪区域 (x, y, width, height)
param.crop = {
"x": 100, # 起始X坐标
"y": 100, # 起始Y坐标
"width": 300, # 裁剪宽度
"height": 300 # 裁剪高度
}
# 自动裁剪模式
param.crop = {
"mode": "center", # 中心裁剪
"ratio": "1:1" # 宽高比
}
旋转参数 (rotate)
# 旋转角度
param.rotate = 90 # 旋转90度
# 翻转模式
from enum import Enum
class FlipMode(Enum):
HORIZONTAL = "horizontal" # 水平翻转
VERTICAL = "vertical" # 垂直翻转
BOTH = "both" # 水平和垂直翻转
param.flip = FlipMode.HORIZONTAL
水印参数 (watermark)
param.watermark = {
"type": "text", # 文字水印
"content": "Copyright", # 水印内容
"position": "bottom-right", # 位置
"opacity": 0.5, # 透明度 (0-1)
"font_size": 24, # 字体大小
"color": "ffffff", # 颜色
"margin": 10 # 边距
}
# 图片水印
param.watermark = {
"type": "image",
"image_url": "watermark.png", # 水印图片
"position": "center", # 位置
"opacity": 0.3,
"scale": 20 # 水印缩放比例(%)
}
颜色调整 (color)
param.color = {
"brightness": 0.1, # 亮度调整 (-1 to 1)
"contrast": 0.2, # 对比度调整 (-1 to 1)
"saturation": 0.1, # 饱和度调整 (-1 to 1)
"hue": 10, # 色调调整 (-180 to 180)
"gamma": 1.2 # 伽马校正
}
压缩级别 (compression)
from enum import Enum
class CompressionLevel(Enum):
FAST = "fast" # 快速压缩,质量一般
BALANCED = "balanced" # 平衡模式
HIGH = "high" # 高质量压缩,速度较慢
param.compression = CompressionLevel.BALANCED
完整配置示例
# 完整的转码参数配置
def create_transcode_param():
param = ImageTranscodeParam()
# 基本设置
param.format = "webp"
param.quality = 80
# 尺寸调整
param.size = (1920, 1080)
param.resize_strategy = ResizeStrategy.FIT
# 裁剪
param.crop = {
"mode": "center",
"ratio": "16:9"
}
# 水印
param.watermark = {
"type": "text",
"content": "Photo by User",
"position": "bottom-right",
"opacity": 0.3,
"font_size": 16,
"color": "ffffff"
}
# 颜色调整
param.color = {
"brightness": 0.05,
"contrast": 0.1,
"saturation": 0.05
}
return param
使用场景示例
# 1. 缩略图生成
thumbnail_param = ImageTranscodeParam()
thumbnail_param.format = "jpeg"
thumbnail_param.size = (150, 150)
thumbnail_param.resize_strategy = ResizeStrategy.CROP
thumbnail_param.quality = 85
# 2. 高清图片优化
optimize_param = ImageTranscodeParam()
optimize_param.format = "webp"
optimize_param.quality = 80
optimize_param.size = (1920, 0) # 限制宽度
optimize_param.color = {
"brightness": 0.02,
"contrast": 0.05
}
# 3. 合规图片处理
compliance_param = ImageTranscodeParam()
compliance_param.format = "jpeg"
compliance_param.size = (800, 800)
compliance_param.max_file_size = "5MB" # 限制文件大小
compliance_param.watermark = {
"type": "image",
"image_url": "compliance_watermark.png",
"position": "center",
"opacity": 0.2
}
最佳实践建议
-
格式选择
- WebP/AVIF:更好的压缩率,浏览器兼容性检查
- JPEG:照片类内容
- PNG:需要透明背景
-
质量平衡
- 质量控制:70-85之间平衡质量和大小
- 渐进式加载:对大型图片开启
-
缓存策略
- 对相同参数结果缓存
- 设置合理的缓存过期时间
-
错误处理
- 验证输入参数
- 处理格式不支持的情况
- 监控转码性能
需要我详细介绍某个特定场景的配置吗?
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播