/** * this util module is about to provide support for image related functions * @module angle-util/imageUtil */ export interface ImageParams { size?: number // 图片尺寸宽度,数字类型。不传默认图片尺寸是上传图片的原尺寸 prefix?: 'https' | 'http' // 地址前缀,字符类型。不传地址前缀默认是https,如需特殊控制传入需修改的前缀 hq?: boolean // 图片高质量,默认false会返回原图片70%压缩质量图片,设置为true则会返回无压缩质量图片 format?: string // 图片格式,默认"auto"会返回原图片格式,可指定其他格式,例如webp, jpg, png等,根据具体场景选择 domain?: 'prod' | 'test' // 环境,字符类型。不传默认环境使用prod生产环境 } export default { /** * 通过图片id获取图床图片地址 * @author youngbeen * @param { string } sImgId - 图片id * @param { object } [params] - [配置参数] * @param { number } [params.size] - 图片尺寸,数字类型。不传默认图片尺寸是上传图片的原尺寸 * @param { string } [params.prefix] - 地址前缀,字符类型。不传地址前缀默认是https,如需特殊控制传入需修改的前缀 * @param { string } [params.hq] - 图片高质量,默认false会返回原图片70%压缩质量图片,设置为true则会返回无压缩质量图片 * @param { string } [params.format] - 图片格式,默认"auto"会返回原图片格式,可指定其他格式,例如webp, jpg, png等,根据具体场景选择 * @param { string } [params.domain] - 环境,字符类型。不传默认环境使用生产环境(图床图片一般不分生产跟sit) * @return { string } 图片url字符串或空字符串 * @example * // 获取默认配置图片 * imageUtil.getImageUrl('T17SdTB_Wj1RCvBVdK') * @example * imageUtil.getImageUrl('T17SdTB_Wj1RCvBVdK', { * size: 400, // 宽度400像素 * prefix: 'http', // 前缀定为http * format: 'jpg', // 指定使用jpg格式 * hq: true, // 指定使用无压缩质量图片 * domain: 'test' // 环境设置为sit * }) */ getImageUrl (sImgId: string, params?: ImageParams): string { let size: number = 0 let prefix: string = 'https' let format: string = 'auto' let hq: string = '70' let domain: string = '' if (params) { // 用户传入了配置参数 if (params.size) { size = params.size } if (params.prefix) { prefix = params.prefix } if (params.format) { format = params.format } if (params.hq) { hq = '100' } if (params.domain === 'test') { // 测试环境 TODO domain = params.domain + '.' } else { // 生产环境 TODO } } // 存在的图片id let url: string = '' url = `${prefix}://timg.${domain}ffan.com/convert/resize/url_${sImgId}/width_${size}/zq_${hq}/tfs/xxx.${format}` // https://timg.ffan.com/convert/resize/url_T1_Wh_BQhg1RCvBVdK/width_600/zq_100/tfs/xxx.auto return url } }