- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章js+canvas实现图片格式webp/png/jpeg在线转换由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
功能需求: 我们在网页中上传一张图片,选择不同的格式,将该图片转换为对应的格式.
实现思路: 实现这样的功能,使用后端语言【php,java等】可以很容易的完成。但是如果只在前端如何完成呢?
1、通过input上传图片,使用FileReader将文件读取到内存中.
2、将图片转换为canvas,canvas.toDataURL()方法设置为我们需要的格式,如:"image/webp","image/jpeg","image/png".
3、最后将canvas转换为图片,显示在网页中。点击右键保存,就得到了不同格式的图片了.
toDataURL说明: 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型,默认为 PNG 格式。图片的分辨率为96dpi.
语法:
canvas.toDataURL(type, encoderOptions),
type【可选】 图片格式,默认为 image/png,可选格式:"image/webp","image/jpeg","image/png".
encoderOptions【可选】在指定图片格式为 image/jpeg 或 image/webp的情况下,可以从 0 到 1 的区间内选择图片的质量。如果超出取值范围,将会使用默认值 0.92。其他参数会被忽略.
注意点:
1、如果画布的高度或宽度是0,那么会返回字符串“data:,”.
2、其中webkit内核浏览器支持“image/webp”类型 。 建议使用Chrome浏览器.
代码例子:
html
1
2
3
4
5
6
7
8
9
|
<
input
type
=
"file"
id
=
"inputimg"
>
<
select
id
=
"myselect"
>
<
option
value
=
"1"
>webp格式</
option
>
<
option
value
=
"2"
>jpeg格式</
option
>
<
option
value
=
"3"
>png格式</
option
>
</
select
>
<
button
id
=
"start"
>开始转换</
button
>
<
p
>预览:</
p
>
<
img
id
=
"imgShow"
src
=
""
alt
=
""
>
|
js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/*事件*/
document.getElementById(
'start'
).addEventListener(
'click'
,
function
(){
getImg(
function
(image){
var
can=imgToCanvas(image),
imgshow=document.getElementById(
"imgShow"
);
imgshow.setAttribute(
'src'
,canvasToImg(can));
});
});
// 把image 转换为 canvas对象
function
imgToCanvas(image) {
var
canvas = document.createElement(
"canvas"
);
canvas.width = image.width;
canvas.height = image.height;
canvas.getContext(
"2d"
).drawImage(image, 0, 0);
return
canvas;
}
//canvas转换为image
function
canvasToImg(canvas) {
var
array=[
"image/webp"
,
"image/jpeg"
,
"image/png"
],
type=document.getElementById(
'myselect'
).value-1;
var
src = canvas.toDataURL(array[type]);
return
src;
}
//获取图片信息
function
getImg(fn){
var
imgFile =
new
FileReader();
try
{
imgFile.onload =
function
(e) {
var
image =
new
Image();
image.src= e.target.result;
//base64数据
image.onload=
function
(){
fn(image);
}
}
imgFile.readAsDataURL(document.getElementById(
'inputimg'
).files[0]);
}
catch
(e){
console.log(
"请上传图片!"
+e);
}
}
|
说明:需要在chrome浏览器中使用,大家可以自行发挥可以做个批量转换.
到此这篇关于js+canvas实现图片格式webp/png/jpeg在线转换的文章就介绍到这了,更多相关webp/png/jpeg在线转换内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:http://www.fly63.com/article/detial/511 。
最后此篇关于js+canvas实现图片格式webp/png/jpeg在线转换的文章就讲到这里了,如果你想了解更多关于js+canvas实现图片格式webp/png/jpeg在线转换的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
看到 WebP 图片惊人的缩小(比无损 + alpha 图片的“pngcrushed”PNG 小约 28%),我们希望将 WebP 图片提供给支持 WebP 的浏览器。 如果客户端浏览器支持 WebP
我正在尝试使用 imagemin-webp 而不是使用 将多个 PNG 和 JPG 文件转换为 WebP cwebp 一次转换一个,但由于某种原因它不起作用。 到目前为止我所做的一切: 1- 我安装了
如何将一堆png或webp图片转成webp动画? 我试过了: convert mytiles.png -crop 100x100 +repage tmp.webp 但我只是得到一堆 webp 图像而不
我有这张图片(我在 SGS 9 plus 上拍摄的照片):Uncompressed JPG image .它的大小为 4032 x 3024,重量为 大约 3MB .我用 TinyJPG Compre
此命令将 PNG 序列转换为 JPG 序列:ffmpeg -i in/%8d.png out/%8d.jpg但是,当对 WEBP 使用相同的命令时:ffmpeg -i in/%8d.png out/%
有什么方法可以使用 filepond 将任何图像转换为 webp? 这是我的代码: import vueFilePond, { setOptions } from 'vue-filepond' //
我正在使用 标记以设置具有 WebP 支持的响应式图像。 我正在提取同时具有 .web 的桌面图像和移动图像 URL和 .jpg文件。 对于每种媒体,我给出 .webp版本和 .jpg版本。 我期望的
我的最终目标是检测浏览器是否能够显示 webp 图像。如果是,则将页面上的所有图像替换为其 webp 等效项(位于同一目录中,名称相同,只是扩展名不同) 目前我有一个脚本可以成功检测浏览器是否能够显示
我一直在为网站处理图像,发现 .webp 格式比 .jpeg 或 .png 更紧凑> 在 Docs 上找到更多信息. 现在我有一个包含近 25 张图像的文件夹,我想将所有图像转换为 .webp 格式。
我试图让我的网站更快,但发现将 jpg 和 png 转换为 webp 可能会有所不同,所以我想复制主题目录中的所有图像,包括不同文件夹中子目录中的图像,但保持原始目录流. 在谷歌上搜索后,我在这个网站
我有一个从原始 AR Stickers APK 中提取的动画 webp 文件我想在我的应用程序中显示,以便在 ARCore 中加入。看起来我可以轻松地将 webp 文件的第一帧加载到 ImageVie
我正在看官方WebP lossless bitstream spec.我有一种感觉,该文件缺少一些解释。 让我描述一下规范的一些片段: 1。简介-清晰 2。 Riff header - 清晰 3。转换
我在互联网上搜索了很多,但在网上找不到合适的例子或完整的教程,可以完整教授。所以大家请给我一些好的例子。 我已经在很多地方或网站上尝试过 WEBP 代码,例如与 modernizer 一起使用、检查浏
我查看了 Azure 中的以下文档 ( https://docs.azure.cn/en-us/cdn/cdn-image-processing ),不确定我是否正确阅读。我的问题是,我希望提供从 c
是否有任何工具或脚本可以批量转换动画 webp 图像? 我想从我的动画 webp 图像创建动画缩略图: 调整图像大小 降低质量(有损压缩) 降低帧率 我尝试了 ImageMagick 之类的工具,但它
我想做的事: 我想使用 Flutter 的 CameraController 录制视频,该视频的持续时间与动画 webp 相同。在我的屏幕上方,动画 webp 正在播放,下方有一个 CameraPre
我正在使用如下代码: 我希望的是,当某些版本的 Safari 浏览器不支持 Webp 图像格式时,根据媒体查询回退到以下来源,而不是直接回退到 "
我的 Django 项目应用程序中有上传图像的服务,我需要将所有图像转换为 webp,以优化前端对这些文件的进一步处理。 _convert_to_webp 方法草案: # imports from p
我已经使用以下代码更新了 WordPress 以允许 WebP 上传, function webp_upload_mimes( $existing_mimes ) { $existing_mi
很难找到一个可以查看 WEBP 图像的应用程序。因此,当您将其下载到硬盘时,将其下载为更常见的格式(例如 JPEG 或 PNG)可能会更方便。 那么有没有一种简单的方法可以将 WEBP 保存为更好的文
我是一名优秀的程序员,十分优秀!