Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload Image from Clipboard上传的问题. #6

Open
z1076 opened this issue Sep 15, 2020 · 2 comments
Open

Upload Image from Clipboard上传的问题. #6

z1076 opened this issue Sep 15, 2020 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@z1076
Copy link

z1076 commented Sep 15, 2020

今天用Upload Image from Clipboard的方式上传图片发现, 上传完成会改变文件格式(变成png格式). 文件体积也发生变更, 不知道是不是我的配置问题.

操作方式
https://s1.ax1x.com/2020/09/15/wsjgyD.gif

explorer选择文件上传没有这个问题.(之前一直这样用.)

VsCode版本: 1.49.0
Aliyun OSS Uploader版本: v1.7.0
OS: Window10专业版64位(10.0 18362)

@fangbinwei fangbinwei self-assigned this Sep 15, 2020
@fangbinwei fangbinwei added the enhancement New feature or request label Sep 16, 2020
@fangbinwei
Copy link
Owner

研究了一波

如果用截图软件(windows下Snipaste)截图, Clipboard上只能拿到图像的bitmap数据(像素信息), 不会有其格式信息(png,jpg等)

upload image from clipboard目前是将Clipboard中的bitmap数据处理成png格式, 并上传.

你的例子中, windows的photo应用右键复制, 从jpg格式的图像中提取出bitmap数据存到Clipboard, 然后插件又处理成png格式上传. jpg -> bitmap -> png.

png格式的文件会比原始的jpg格式文件大很多. 这确实是一个问题.

Clipboard上只能拿到图像的bitmap数据, 不会有其格式信息(png,jpg等)
其实这个也不绝对

你的例子中, windows的photo应用右键复制, 除了保存了bitmap数据外, 其实还保存了文件名到Clipboard中, 理论上确实可以知道复制了一个jpg文件, 然后插件可以将bitmap数据处理成jpg格式, 和之前保持一致. 但是用截图软件的话, Clipboard中是没有这些信息的. 所以现在这样统一处理成png, 会简单很多, 我觉得还是合理的.

我在windows上找了一个查看Clipboard的软件, 当用windows photo应用复制的时候, 效果如下,

image

此外, 在Chrome中复制图像, 也可以拿到原始文件的ext信息, Clipboard会有html相关信息, 里面有源文件的ext
image

png文件比较大的问题

我倾向于用oss提供的转换功能,

比如一张png图像https://image.fangbinwei.cn/banner.png, 使用下面的方式访问, 文件大小就会小很多

  • http://image.fangbinwei.cn/banner.png?x-oss-process=image/quality,Q_85/format,jpg
  • http://image.fangbinwei.cn/banner.png?x-oss-process=image/format,webp

所以我觉得可以在elan.outputFormat中增加一个${query}, 在upload image from clipboard的时候, 将${query}设置成?x-oss-process=image/quality,Q_85/format,jpg, 在${url}中也加上这个信息, 这样可以使用${url}或者http://cdn.ifanlm.com${pathname}${query}来访问jpg格式的图像. 应该不会影响你的watermark?

https://stackoverflow.com/questions/57263058/how-to-get-the-image-format-from-clipboard-class/57303297#57303297
https://developer.aliyun.com/article/74634

@z1076
Copy link
Author

z1076 commented Sep 17, 2020

原来是酱紫. 我都不知道截图软件和复制图片的bitmap数据是有区别的.

这个还是根据使用场景来看待. 像我把oss当网盘用, 对数据大小并不敏感, 图片都没经过压缩直接上传用.

有个别是用在建站或者APP要经常访问到的资源, 这个文件体积飙升可能就接受不了.
还有喜欢使用 upload image from clipboard 功能的用户, 如果上传GIF变成了PNG, 也不大好.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants