开发者社区 问答 正文

JavaScript-SDK之如何实现图片处理(二)?


SDK访问


对于任意权限的图片文件,都可以直接使用 SDK 访问图片、进行处理。


提示:
  • SDK处理图片文件支持 自定义样式、 HTTPS、 级联处理


基础操作


图片处理的基础操作包括, 获取图片信息格式转换缩放裁剪旋转效果水印等。 var OSS = require('ali-oss');
var co = require('co');
var client = new OSS({
  accessKeyId: '<accessKeyId>',
  accessKeySecret: '<accessKeySecret>',
  bucket: '<bucketName>',
  endpoint: '<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>'
});
// 缩放
co(function* () {
  var result = yield client.get('example.jpg', './example-resize.jpg',
                                {process: 'image/resize,m_fixed,w_100,h_100'});
}).catch(function (err) {
  console.log(err);
});
// 裁剪
co(function* () {
  var result = yield client.get('example.jpg', './example-crop.jpg',
                                {process: 'image/crop,w_100,h_100,x_100,y_100,r_1'});
}).catch(function (err) {
  console.log(err);
});
// 旋转
co(function* () {
  var result = yield client.get('example.jpg', './example-rotate.jpg',
                                {process: 'image/rotate,90'});
}).catch(function (err) {
  console.log(err);
});
// 锐化
co(function* () {
  var result = yield client.get('example.jpg', './example-sharpen.jpg',
                                {process: 'image/sharpen,100'});
}).catch(function (err) {
  console.log(err);
});
// 水印
co(function* () {
  var result = yield client.get('example.jpg', './example-watermark.jpg',
                                {process: 'image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ'});
}).catch(function (err) {
  console.log(err);
});
// 格式转换
co(function* () {
  var result = yield client.get('example.jpg', './example-format.jpg',
                                {process: 'image/format,png'});
}).catch(function (err) {
  console.log(err);
});
// 图片信息
co(function* () {
  var result = yield client.get('example.jpg', './example-info.txt',
                                {process: 'image/info'});
}).catch(function (err) {
  console.log(err);
});



自定义样式


提示:需要事先到oss控制台添加自定义式样example-sytle var OSS = require('ali-oss');
var co = require('co');
var client = new OSS({
  accessKeyId: '<accessKeyId>',
  accessKeySecret: '<accessKeySecret>',
  bucket: '<bucketName>',
  endpoint: '<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>'
});
// 自定义样式
co(function* () {
  var result = yield client.get('example.jpg', './example-custom-style.jpg',
                                {process: 'style/example-sytle"'});
}).catch(function (err) {
  console.log(err);
});



级联处理
var OSS = require('ali-oss');
var co = require('co');
var client = new OSS({
  accessKeyId: '<accessKeyId>',
  accessKeySecret: '<accessKeySecret>',
  bucket: '<bucketName>',
  endpoint: '<endpoint, 例如http://oss-cn-hangzhou.aliyuncs.com>'
});
// 级联处理
co(function* () {
  var result = yield client.get('example.jpg', './example-cascade.jpg',
                                {process: 'image/resize,m_fixed,w_100,h_100/rotate,90'});
}).catch(function (err) {
  console.log(err);
});



图片处理工具

  • 可视化图片处理工具 ImageStyleViever ,可以直观的看到OSS图片处理的结果
  • OSS图片处理的功能、使用演示 页面

展开
收起
青衫无名 2017-10-19 09:49:57 1863 分享 版权
阿里云 AI 助理回答

您提到的是使用阿里云对象存储服务(Object Storage Service,简称OSS)的图片处理功能,这是一项非常实用的服务,允许用户直接通过SDK对存储在OSS中的图片进行各种基础和高级处理,而无需先将图片下载到本地。下面是对您提供信息的一个总结和补充说明:

SDK访问图片并处理

  • 基本概念:阿里云OSS提供了丰富的图片处理能力,包括但不限于获取图片信息、格式转换、缩放、裁剪、旋转、添加效果(如锐化)、水印等,这些操作都可以通过设置process参数来实现。

  • 示例代码:您展示的Node.js代码片段展示了如何使用ali-oss SDK执行常见的图片处理任务。每个任务都通过定义特定的process字符串来指定处理逻辑,例如image/resize,m_fixed,w_100,h_100表示按照固定模式将图片缩放到宽度100像素、高度100像素。

自定义样式

  • 优势:自定义样式是OSS提供的一个强大特性,允许用户预先定义一系列图片处理指令,并赋予一个名称(如example-style)。之后,只需在请求中引用这个样式名,就可以应用整套预设的处理逻辑,简化了重复的操作。

级联处理

  • 说明:级联处理意味着可以在一个处理链中串联多个操作,比如先缩放图片再旋转,只需在process参数中用斜杠/分隔不同的处理指令即可。这为复杂图片处理需求提供了灵活性。

图片处理工具

  • ImageStyleViewer:这是一个可视化工具,它帮助用户直观地预览OSS图片处理指令的效果,无需编写代码。这对于调试和设计图片处理流程非常有帮助,可以快速迭代直到达到满意的效果。

注意事项

  • 权限管理:确保您的OSS bucket策略允许执行所需的图片处理操作。
  • 安全实践:使用AccessKey时,请遵循最小权限原则,并考虑使用RAM用户或STS临时凭证增强安全性。
  • 性能与成本:虽然OSS图片处理功能方便快捷,但频繁或大规模处理可能影响性能和产生额外费用,建议评估需求并合理规划。

总之,阿里云OSS的图片处理服务极大地简化了云端图片管理与优化的工作流程,无论是简单的尺寸调整还是复杂的样式应用,都能轻松实现。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答