SinaImgx

SinaImgx為Web和移動(dòng)APP開發(fā)者提供一套云端圖片處理服務(wù),作為一個(gè)完美的解決方案,能夠充分滿足您對(duì)圖片處理的相關(guān)需求

URL格式

http://imgx.sinacloud.net/<bucket>/<處理指令>/<文件路徑>?<querystring>

或者

http://<bucket>.imgx.sinacloud.net/<處理指令>/<文件路徑>?<querystring>
  • bucket : 您在新浪云存儲(chǔ)(SCS)中創(chuàng)建的bucket名稱;
  • 處理指令 : 對(duì)原始圖片的處理指令,下面有詳細(xì)介紹;
  • 文件路徑 : 原始圖片文件在SCS中的存儲(chǔ)路徑;
  • querystring : 主要是簽名相關(guān)的參數(shù);

舉例

例如:原始圖片在云存儲(chǔ)中的url為:http://sinacloud.net/yun/demo/1.jpg 可以看出:

  • bucket為:yun
  • object為:demo/1.jpg

下面我們進(jìn)行下列操作:

  • 裁剪人臉區(qū)域, 并將圖片縮略:400x400:c_thumb,g_face,w_400,h_400
  • 將圖片變成圓角,半徑為最大(正圓):r_max
  • 將圖片亮度增加8%:e_brightness:8
  • 將圖片格式轉(zhuǎn)換為png格式:f_png

處理指令為:c_thumb,g_face,w_400,h_400,r_max,e_brightness:8,f_png 我們可以通過URL直接進(jìn)行訪問:

http://imgx.sinacloud.net/yun/c_thumb,g_face,w_400,h_400,r_max,e_brightness:8,f_png/demo/1.jpg

或者

http://yun.imgx.sinacloud.net/c_thumb,g_face,w_400,h_400,r_max,e_brightness:8,f_png/demo/1.jpg

或者創(chuàng)建一個(gè)json文件(如果您不想將處理指令暴露在URL中),內(nèi)容為:

[
    {  
        "crop" : "thumb",
        "gravity" : "face",
        "width" : 400,
        "height" : 400,
        "radius" : "max",
        "effect" : "brightness:8",
        "format" : "png"
    }
]

將文件保存到您對(duì)應(yīng)的bucket下的路徑:

imgx/t/my_thumb.json    #其中文件名(my_thumb)是您自定義的“指令集名稱”,類似css中的class

然后就可以通過下面的URL進(jìn)行訪問(也就是說,處理指令也可以不用放在URL中,直接隱藏到您自定義的json文件中):

http://imgx.sinacloud.net/yun/t_my_thumb/demo/1.jpg

指令格式

  • 指令名和指令值之間用”_“連接 c_fit
  • 相關(guān)指令使用逗號(hào)隔開“,” c_fit,w_100,h_100,g_face
  • 多組指令之間用“--”隔開 c_fit,w_100,h_100,g_face,r_max--l_text:my_font:hello+word,w_100,h_40

簽名 & 認(rèn)證

  • 建議您使用URL簽名,目的在于您的圖片處理指令不會(huì)被別人濫用而耗費(fèi)您的流量,并且可以保護(hù)原圖不被盜取。
  • 注意:簽名算法兼容SCS《簽名算法》,<處理指令>/<文件路徑>作為object參與簽名
  • 如果您不想使用簽名,需要對(duì)您的bucket設(shè)置一條ACL,對(duì)SINA000000000000IMGX開放讀寫權(quán)限,可以通過調(diào)用API設(shè)置,也可以使用控制臺(tái)設(shè)置ACL,如下圖:
  • 如果您不想使用簽名,不需要開放匿名權(quán)限的ACL,只需要開放SINA000000000000IMGX的權(quán)限;
  • 簽名算法參見:《簽名算法》

緩存 & CDN

  • 處理后的圖片生成緩存,下次請(qǐng)求不在重復(fù)生成,默認(rèn)緩存7天
  • 處理后的圖片會(huì)自動(dòng)推送到CDN節(jié)點(diǎn)
  • 如果您的原圖修改了,可以使用v指令重新生成圖片,后面詳細(xì)介紹

圖片處理指令

指令名 指令 Value 示例 描述
crop c mode 裁剪方式,指定圖像裁剪或放縮的方式。
scale 改變圖像的大小,以匹配給定的寬度和高度。所有原始圖像的部分將是可見的,但可能會(huì)被拉伸而變形。

c_scale,h_80,w_80
fill 裁剪圖像,同時(shí)保留原有比例。

c_fill,h_80,w_80
lfill fill 模式,不同的是限制圖片尺寸不大于原圖

c_lfill,h_80,w_80
fit 改變圖像的大小,以匹配給定的寬度和高度,同時(shí)保留原有比例,所有原始圖像的部分將是可見的。等比放縮,不會(huì)因?yàn)槔於冃巍?

c_fit,h_80,w_80
mfit fit 模式,不同的是限制圖片尺寸不小于原圖

c_mfit,h_80,w_80
limit fit,不同的是限制圖片尺,處理后的圖片尺寸不會(huì)超過原圖。

c_limit,h_80,w_80
pad 指定圖像的尺寸,同時(shí)保留原有比例。如果原圖比例不滿足指定的尺寸,將被填充為背景顏色。

c_pad,h_80,w_80,g_center,b_dddddd
lpad pad 模式,不同的是,如果指定的尺寸大于原圖,將不擴(kuò)大原圖

c_lpad,h_640,w_640,g_center,b_dddddd
mpad pad 模式,不同的是限制圖片尺寸不小于原圖

c_mpad,h_80,w_80,g_center,b_dddddd
crop 指定尺寸和位置,用于從原始圖片的基礎(chǔ)上裁剪出一部分。

c_crop,h_180,w_180,g_face
thumb 定位人臉(結(jié)合'face'或'faces'重力參數(shù))并生成縮略圖,常用于生成頭像。

c_thumb,h_110,w_110,g_face
width w 像素或者百分比 寬度參數(shù),結(jié)合 裁剪方式(crop) 或者 水印(overlay) 使用
80 調(diào)整寬度為80像素

w_80
0.1 調(diào)整圖像到其原始尺寸的10%。

w_0.1
height h 像素或者百分比 高度參數(shù),結(jié)合 裁剪方式(crop) 或者 水印(overlay) 使用
80 調(diào)整高度為80像素

h_80
0.1 調(diào)整圖像到其原始尺寸的10%。

h_0.1
gravity g 用于指定位置或者方向 1. 用于 'crop', 'pad', 'fill' 的裁剪方式;
2. 用于指定 水印(overlay) 的位置
north_west 左上位置

c_crop,g_north_west,h_200,w_200
north 正上位置,水平方向居中

c_crop,g_north,h_200,w_200
north_east 右上位置

c_crop,g_north_east,h_200,w_200
west 左邊,垂直方向居中

c_crop,g_west,h_200,w_200
center 正中

c_crop,g_center,h_200,w_200
east 右邊,垂直方向居中

c_crop,g_east,h_200,w_200
south_west 左下位置

c_crop,g_south_west,h_200,w_200
south 正下位置,水平方向居中

c_crop,g_south,h_200,w_200
south_east 右下位置

c_crop,g_south_east,h_200,w_200
xy_center 指定的x,y坐標(biāo),并作為中心點(diǎn)

c_crop,g_xy_center,h_400,w_400,x_245,y_240
face 自動(dòng)定位人臉的位置,如果有多張臉,選擇最容易識(shí)別的一個(gè)

c_crop,g_face,h_140,w_140
face (thumb) 自動(dòng)定位人臉的位置,并且根據(jù)指定的尺寸生成縮略圖。如果有多張臉,選擇最容易識(shí)別的一個(gè)

c_thumb,g_face,h_130,w_140,f_png
faces 自動(dòng)定位多張人臉的位置

c_thumb,g_faces,h_220,w_600,e_brightness:18
face:center 自動(dòng)定位人臉的位置,如果找不到人臉則自動(dòng)定位到原圖的中心

c_thumb,g_face:center,h_140,w_140
faces:center 自動(dòng)定位多張人臉的位置,如果找不到人臉則自動(dòng)定位到原圖的中心

c_thumb,g_faces:center,h_120,w_330,e_brightness:18
x x 像素 用于指定圖片裁剪或者水印的橫向坐標(biāo)。
110 裁剪圖像80x80像素,從左邊110像素開始

c_crop,h_80,w_80,x_110
y y 像素 用于指定圖片裁剪或者水印的縱向坐標(biāo)。
330 裁剪圖像80x80像素,從頂部330像素開始。

c_crop,h_80,w_80,x_230,y_330
quality q 百分比 控制JPG或者WEBP格式圖片的壓縮質(zhì)量。最小值為1,最大值為100。
100 圖片質(zhì)量為100%,文件大小為14.3KB。

c_thumb,g_face,h_130,w_140,q_100
10 圖片質(zhì)量為10%,文件大小降低到1.5KB。

c_thumb,g_face,h_130,w_140,q_10
radius r 像素值或者'max' 指定半徑,生成圓角或完全變成圓形(橢圓)。
30 生成30像素半徑的圓角

c_thumb,g_face,h_140,w_140,f_png,r_30
max 使用最大半徑生成圓角

c_thumb,g_face,h_140,w_140,f_png,r_max
angle a 角度或者翻轉(zhuǎn)模式 翻轉(zhuǎn)或者旋轉(zhuǎn)圖像
90 順時(shí)針旋轉(zhuǎn)90度

c_fill,h_80,w_80,a_90
10 順時(shí)針旋轉(zhuǎn)10度

c_fill,h_80,w_80,a_10
-20 逆時(shí)針旋轉(zhuǎn)20度

c_fill,h_80,w_80,a_-20
vflip 垂直翻轉(zhuǎn)

c_fill,h_80,w_80,a_vflip
hflip 水平翻轉(zhuǎn)

c_fill,h_80,w_80,a_hflip
effect e name and value 使用濾鏡或者特效
grayscale 灰度

c_fill,h_380,w_380,e_grayscale
oil_paint 油畫效果

c_fill,h_380,w_380,e_oil_paint
oil_paint:2 使用油畫效果,并指定一個(gè)level值為2,取值范圍1到8,默認(rèn)值為4

c_fill,h_380,w_380,e_oil_paint:2
negate 反色

c_fill,h_380,w_380,e_negate:2
brightness:28 調(diào)整圖片的亮度,并指定一個(gè)百分比值為28,取值范圍-100到100,默認(rèn)值為30

c_fill,h_380,w_380,e_brightness:28
brightness:-28 調(diào)整圖片的亮度,并指定一個(gè)百分比值為-20,取值范圍-100到100,默認(rèn)值為30

c_fill,h_380,w_380,e_brightness:-20
blur 模糊效果

c_fill,h_380,w_380,e_blur
blur:300 使用模糊效果,并指定一個(gè)level值為300,取值范圍1到2000,默認(rèn)值為100

c_fill,h_380,w_380,e_blur:300
pixelate 像素化

c_fill,h_380,w_380,e_pixelate:20
pixelate:40 使用像素化效果,并指定一個(gè)level值為40,默認(rèn)值為5

c_fill,h_380,w_380,e_pixelate:40
sharpen 銳化

c_fill,h_380,w_380,e_sharpen
sharpen:400 使用銳化效果,并指定一個(gè)level值為400,取值范圍1到2000,默認(rèn)值為100

c_fill,h_380,w_380,e_sharpen:400
auto_contrast 自動(dòng)對(duì)比度

c_fill,h_380,w_380,e_auto_contrast
improve 自動(dòng)調(diào)整圖像色彩,對(duì)比度和亮度。

c_fill,h_380,w_380,e_improve
sepia 增加褐色,實(shí)現(xiàn)老照片效果

c_fill,h_380,w_380,e_sepia
sepia:60 增加褐色,實(shí)現(xiàn)老照片效果,并指定一個(gè)level值為60。取值范圍1到100,默認(rèn)值為80。

c_fill,h_380,w_380,e_sepia:60
red:40 增加紅色

c_fill,h_380,w_380,e_red:40
green:40 增加綠色

c_fill,h_380,w_380,e_green:40
blue:40 增加藍(lán)色

c_fill,h_380,w_380,e_blue:40
yellow:40 增加黃色

c_fill,h_380,w_380,e_yellow:40
cyan:40 增加青色

c_fill,h_380,w_380,e_cyan:40
magenta:40 增加粉色

c_fill,h_380,w_380,e_magenta:40
opacity o 百分比 控制PNG或者WEBP格式圖片不透明度。最小值為1,最大值為100。
25 不透明度為25%

h_330,w_330,o_25
border bo style 設(shè)置邊框
10_0000004a 設(shè)置一個(gè)邊框?qū)挾葹?0px,顏色值為黑色,透明度為4a(16進(jìn)制)

h_330,w_330,bo_10_0000004a
8_bbbbbb 對(duì)圓角圖像設(shè)置一個(gè)邊框?qū)挾葹?px,顏色值為bbbbbb

h_330,w_330,bo_8_bbbbbb,r_100
background b color 設(shè)置背景顏色,配合其他指令
dddddd 設(shè)置背景顏色為dddddd

c_pad,w_380,h_180,b_dddddd
fff6def0 設(shè)置背景顏色為fff6de,透明度為f0 (16進(jìn)制)

c_fill,h_110,w_110,a_30,b_fff6def0
dbeced 設(shè)置背景顏色為dddddd

c_fill,h_140,w_140,r_max,b_dbeced--c_lpad,g_center,w_152,h_152,b_dbeced
overlay l 水印圖片名,或者字體描述文件名稱等 在原圖上增加水印。您可以配合w,h,x,y和重力參數(shù)控制水印的尺寸和位置,還可以使用o參數(shù)控制水印的透明度
vdisk 在圖片的右下角加一個(gè)微盤超人的水?。ㄖС滞獠繀^(qū)域);首先需要將水印貼圖(必須是png格式)保存到您的對(duì)應(yīng)bucket下,路徑規(guī)則為:imgx/l/my_name.png,然后您可以使用l_my_name指令進(jìn)行水印操作了

c_fill,w_500,h_500,g_face,f_png--l_vdisk,g_south_east,w_250,x_-120,y_-60--l_scs_logo,x_20,y_20
text:font_me:你好,云存儲(chǔ) 文字水印。關(guān)于字體樣式的設(shè)置后面會(huì)詳細(xì)介紹。

l_text:font_me:%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%BA%91%E5%AD%98%E5%82%A8,g_north_west,x_50,y_50--w_400
format f 圖片格式 圖片格式轉(zhuǎn)
png f_png
webp f_webp
jpeg f_jpeg
jpg f_jpg
version v 版本 緩存未過期的情況下指定版本重新生成圖像
1.21 小數(shù) v_1.21
13 整數(shù) v_13
transformation t 名稱 "指令集",指令可以不放到URL中,使用json格式的文件,保存到指定的路徑下
my_thumbs 自定義名稱,在對(duì)應(yīng)的bucket下,創(chuàng)建文件:imgx/t/my_thumbs.json

t_my_thumbs

水印功能詳細(xì)介紹

  1. 水印分為:圖片水印文字水印
  2. 如果您使用了水印 l 指令,則和 l 一組的其他指令將針對(duì) 水印圖片或者文字 進(jìn)行處理(如:w、h、g、x、y、o、bo、e、a、r等),后面舉例介紹。

圖片水印

您需要預(yù)先將水印貼圖保存到對(duì)應(yīng)的bucket下 imgx/l/<filename>.png,圖片必須是png格式,下面兩張圖為例:

水印貼圖 對(duì)應(yīng)路徑 對(duì)應(yīng)指令
imgx/l/icon_v.png l_icon_v
imgx/l/scs_logo.png l_scs_logo

下面舉例介紹具體功能

示例 描述 指令
1. 將原圖等比放縮;
2. 添加一個(gè)圖片水印到原圖的左上角,并且微調(diào)坐標(biāo)(x_43,y_20),設(shè)置水印的寬度為120px,不透明度為25%,逆時(shí)針旋轉(zhuǎn)水印10度
c_fit,w_300,f_png--l_scs_logo,g_north_west,w_120,o_25,x_43,y_20,a_-10
1. 將原圖處理成一個(gè)圓角頭像;
2. 在右下角添加一個(gè)水印圖片,并且向外微調(diào)水印坐標(biāo)(x_-1,y_-5),設(shè)置水印圖片的寬度為60px
c_thumb,g_face,w_200,h_200,r_max,bo_6_ffffff80,f_png--l_icon_v,g_south_east,w_60,x_-1,y_-5
1. 同上
2. 將水印圖片反色
c_thumb,g_face,w_200,h_200,r_max,bo_6_ffffff80,f_png--l_icon_v,g_south_east,w_60,x_-1,y_-5,e_negate


文字水印

您需要預(yù)先將文字水印的字體配置(json格式的文件)保存到對(duì)應(yīng)的bucket下 imgx/l/<file>.json,例如:

{
    "font_family" : "Xingkai SC",
    "font_style" : "bold",
    "font_size" : 30,
    "font_color" : "000000",
    "background" : "ff0000cc",
    "padding" : 10,
    "word_spacing" : 1,
    "kerning" : 1,
    "line_spacing" : 2,
    "pierced" : false,
    "tile" : false,
    "text" : "默認(rèn)值",
}

對(duì)應(yīng)路徑:imgx/l/my_font.json

字體參數(shù)介紹

所有參數(shù)非必填項(xiàng)

參數(shù)名 介紹 默認(rèn)值
font_family 字體家族,我們支持的所有 字體 Songti SC
font_style 字體樣式(如果字體本身支持以下樣式才有效果,否則默認(rèn)使用normal):
     normal(常規(guī))
     italic(斜體)
     bold(粗體)
     light(細(xì)體)
normal
font_size 字號(hào)(單位:px) 14
font_color 16進(jìn)制rgba(前6為rgb,最后2位alpha,都是0到f),省略最后兩位則認(rèn)為不透明 黑色(000000)
background 16進(jìn)制rgba(前6為rgb,最后2位alpha,都是0到f),省略最后兩位則認(rèn)為不透明 透明(ffffff00)
padding 文字周圍填充的寬度(單位:px) 6
word_spacing 詞間距(單位:px) 0
kerning 字間距(單位:px) 0
line_spacing 行間距(單位:px) 0
pierced 鏤空字效果(bool值) false
tile 是否平鋪(bool值) false
text 默認(rèn)字符串 空字符串

示例1:

imgx/l/simple_font.json :

{
    "font_family" : "Microsoft YaHei",
    "font_size" : 40,
    "font_color" : "ffffff"
}

一個(gè)最簡(jiǎn)單的文字水印

指令:

w_800,f_png--l_text:simple_font:Hello+SCS!!,x_20,y_20,a_-25

示例2:

imgx/l/subtitles.json :

{
    "font_size" : 22,
    "font_color" : "ffffff"
}

imgx/l/subtitles_s.json :

{
    "font_size" : 16,
    "font_color" : "ffffff"
}

咱們也搞一個(gè)大片效果, 應(yīng)用到兩張圖上:

指令:

f_png,c_fill,w_800,h_400,e_brightness:-8--c_pad,w_800,h_550,g_center,b_000000ff,e_yellow:30--l_text:subtitles:%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85%E6%8F%90%E4%BE%9B%E4%B8%80%E5%A5%97%E4%BA%91%E7%AB%AF%E5%9B%BE%E7%89%87%E5%A4%84%E7%90%86%E6%9C%8D%E5%8A%A1,g_south,y_100--l_text:subtitles_s:SinaImgx%20is%20the%20image%20back-end%20for%20web%20and%20mobile%20developers,g_south,y_80

示例3:

imgx/l/my_font.json :

{
    "font_family" : "Xingkai SC",
    "font_style" : "bold",
    "font_size" : 40,
    "font_color" : "000000",
    "background" : "ff0000cc",
    "padding" : 18
}

過年了,咱們做一個(gè)對(duì)聯(lián):

指令:

w_800,f_png--l_text:my_font:%E9%A9%AC%E9%A9%B0%E5%A4%A7%E9%81%93%E5%BE%81%E9%80%94%E8%BF%9C,g_south_west,w_40,x_20,y_40--l_text:my_font:%E7%BE%8A%E4%B8%8A%E5%A5%87%E5%B3%B0%E6%99%AF%E8%89%B2%E5%A8%87,g_south_east,w_40,x_20,y_40--l_text:my_font:%E6%96%B0%E6%B5%AA%E4%BA%91%E5%AD%98%E5%82%A8,g_north,y_20

示例4:

imgx/l/font_me.json :

{
    "font_family": "Microsoft YaHei",
    "font_size": 60,
    "font_color": "ffffff",
    "font_style": "bold",
    "background": "0000008f",
    "pierced": true,
    "tile": false,
    "padding": 24,
    "word_spacing": 2.2,
    "line_spacing": 1.2,
    "kerning": 1.5
}

鏤空字效果

指令:

l_text:font_me:%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%BA%91%E5%AD%98%E5%82%A8,g_west,x_50,y_-200--w_800

示例5:

imgx/l/tile.json :

{
    "font_family" : "Microsoft YaHei",
    "font_style" : "bold",
    "font_size" : 40,
    "font_color" : "000000",
    "background" : "ff000066",
    "padding" : 18,
    "tile": true
}

平鋪效果

指令:

w_800,f_png--l_text:tile:Hello+SCS!!,g_south

示例6:

imgx/l/badge.json :

{
    "font_style" : "bold",
    "font_size" : 30,
    "font_color" : "ffffff",
    "background" : "ff0000cc",
    "padding" : 15
}

增加一個(gè)badge(數(shù)字徽章)

指令:

c_thumb,g_face,w_200,h_200,r_max,bo_6_ffffff80,f_png--l_text:badge:69,r_max,g_south_east,w_34,h_34,x_-1,y_-5

使用“指令集”

如果您不希望把指令暴露在URL中,很簡(jiǎn)單:

下面舉例說明,自動(dòng)識(shí)別照片上的人臉位置并做一張帶有邊框的圓形縮略圖:

  • 先創(chuàng)建一個(gè)json文件,保存到對(duì)應(yīng)的bucket中: 路徑: imgx/t/avatar.json
[
    {
        "crop" : "thumb",
        "gravity" : "face:center",
        "width" : 200,
        "height" : 200,
        "radius" : "max",
        "border" : "6_ffffff80",
        "format" : "png"
    },
    {
        "overlay" : "icon_v",
        "gravity" : "south_east",
        "width" : 60,
        "x" : -1,
        "y" : -5
    }
]
  • 通過下面的方式訪問:
http://imgx.sinacloud.net/yun/t_avatar/demo/1.jpg
http://imgx.sinacloud.net/yun/t_avatar/demo/3.png
  • 效果:

字體 (font_family)

  • STZhongsong
  • Heiti SC
  • Yuppy SC
  • Hannotate TC
  • SimHei
  • Lucida Console
  • STHupo
  • Wawati SC
  • Candara
  • Meiryo
  • STKaiti
  • Kaiti TC
  • Bookshelf Symbol 7
  • MS PGothic
  • Candelita
  • MS Reference Specialty
  • Marlett
  • SimSun-ExtB
  • Baoli SC
  • Adobe Kaiti Std
  • Adobe Fangsong Std
  • STHeiti
  • MS Reference Sans Serif
  • Gulim
  • Xingkai SC
  • STXingkai
  • Libian SC
  • MJNgai PRC
  • STLiti
  • Batang
  • Franklin Gothic Medium
  • Heiti TC
  • PMingLiU
  • Lantinghei SC
  • MS PMincho
  • Yuanti SC
  • HanziPen TC
  • STFangsong
  • SimSun
  • Lantinghei TC
  • MS Gothic
  • Weibei SC
  • Kaiti SC
  • Cambria
  • Consolas
  • Adobe Heiti Std
  • Constantia
  • Brush Script MT
  • Hannotate SC
  • HanziPen SC
  • Hiragino Sans GB
  • KaiTi
  • Perpetua
  • MS Mincho
  • Lucida Sans Unicode
  • Tw Cen MT
  • Gill Sans MT
  • STXinwei
  • Songti SC
  • SentyPaperCut
  • Villasukat
  • Calibri
  • Franklin Gothic Book
  • FangSong
  • Songti TC
  • Adobe Song Std
  • Microsoft YaHei
  • Corbel
  • STSong