0

0

JS如何操作图片

星降

星降

发布时间:2025-08-19 12:09:01

|

325人浏览过

|

来源于php中文网

原创

JS操作图片的核心是DOM和Canvas API。通过修改img标签的src属性可切换图片;设置width和height属性调整显示尺寸;利用onload和onerror事件监听加载状态并处理异常;使用Canvas进行像素级操作,如通过drawImage实现裁剪,getImageData和putImageData应用滤镜;结合FileReader读取文件并用readAsDataURL预览上传图片;利用canvas的toDataURL方法压缩图片,通过调节quality参数控制JPEG格式图片质量,实现前端图片压缩。

js如何操作图片

JS操作图片,核心在于利用DOM API和Canvas API。前者让你能控制HTML中的

@@##@@
标签,后者则提供了更强大的像素级别的操作能力。

解决方案

JS操作图片主要涉及以下几个方面:

  1. 改变图片源 (src):这是最基本的操作,通过修改

    @@##@@
    标签的
    src
    属性来实现图片的切换或加载。

    let imgElement = document.getElementById('myImage');
    imgElement.src = 'new_image.jpg';
  2. 调整图片尺寸:可以通过设置

    @@##@@
    标签的
    width
    height
    属性来改变图片的显示大小。

    imgElement.width = 200; // 宽度设置为200像素
    imgElement.height = 150; // 高度设置为150像素
  3. 使用Canvas进行高级操作:Canvas提供了像素级别的操作,可以实现图片裁剪、滤镜、旋转等高级功能。

    let canvas = document.getElementById('myCanvas');
    let ctx = canvas.getContext('2d');
    let image = new Image();
    
    image.onload = function() {
        canvas.width = image.width;
        canvas.height = image.height;
        ctx.drawImage(image, 0, 0);
    
        // 例如:应用灰度滤镜
        let imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
        let data = imageData.data;
        for (let i = 0; i < data.length; i += 4) {
            let avg = (data[i] + data[i + 1] + data[i + 2]) / 3;
            data[i] = avg;
            data[i + 1] = avg;
            data[i + 2] = avg;
        }
        ctx.putImageData(imageData, 0, 0);
    };
    
    image.src = 'my_image.jpg';
  4. 监听图片加载事件

    @@##@@
    标签的
    onload
    事件会在图片加载完成后触发,可以利用这个事件来执行一些操作,例如调整图片大小、添加动画效果等。

    imgElement.onload = function() {
        console.log('图片加载完成');
        // 在这里执行一些操作
    };
  5. 处理图片错误

    @@##@@
    标签的
    onerror
    事件会在图片加载失败时触发,可以利用这个事件来显示一个默认图片或提示用户。

    疯狂翻译师App
    疯狂翻译师App

    支持屏幕、图片、视频字幕、文档、漫画等多种翻译,准确率高,操作简单。

    下载
    imgElement.onerror = function() {
        console.log('图片加载失败');
        imgElement.src = 'default_image.jpg'; // 显示默认图片
    };

如何使用JS实现图片的裁剪功能?

利用Canvas可以实现图片的裁剪。首先,将图片绘制到Canvas上,然后使用

drawImage()
方法的其他参数来指定裁剪区域。

let canvas = document.getElementById('myCanvas');
let ctx = canvas.getContext('2d');
let image = new Image();

image.onload = function() {
    // 裁剪区域:(sx, sy, sWidth, sHeight)
    let sx = 50; // 裁剪起始X坐标
    let sy = 50; // 裁剪起始Y坐标
    let sWidth = 100; // 裁剪宽度
    let sHeight = 100; // 裁剪高度

    // 目标区域:(dx, dy, dWidth, dHeight)
    let dx = 0; // 绘制起始X坐标
    let dy = 0; // 绘制起始Y坐标
    let dWidth = 100; // 绘制宽度
    let dHeight = 100; // 绘制高度

    canvas.width = dWidth;
    canvas.height = dHeight;

    ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
};

image.src = 'my_image.jpg';

这段代码会将

my_image.jpg
中从(50, 50)开始,宽高为100x100的区域裁剪出来,并绘制到Canvas上。

JS如何实现图片上传前的预览?

图片上传前的预览功能通常使用

FileReader
API来实现。 首先监听
元素的
change
事件,当用户选择文件后,读取文件内容并将其显示在
@@##@@
标签中。


@@##@@

这段代码中,

readAsDataURL()
方法会将文件读取为Base64编码的字符串,然后将其设置为
@@##@@
标签的
src
属性,从而实现图片的预览。

如何使用JS实现图片的压缩?

图片的压缩也可以使用Canvas API来实现。 首先将图片绘制到Canvas上,然后使用

toDataURL()
方法将Canvas内容转换为Data URL,并指定压缩质量。

let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d');
let image = new Image();

image.onload = function() {
    canvas.width = image.width;
    canvas.height = image.height;
    ctx.drawImage(image, 0, 0);

    // 压缩质量:0.0 ~ 1.0,值越小压缩率越高
    let quality = 0.7;
    let compressedDataURL = canvas.toDataURL('image/jpeg', quality);

    // compressedDataURL 就是压缩后的Data URL
    console.log('压缩后的Data URL:', compressedDataURL);

    // 可以将 compressedDataURL 发送到服务器
};

image.src = 'my_image.jpg';

toDataURL()
方法的第二个参数是压缩质量,取值范围为0.0到1.0,值越小压缩率越高,图片质量越低。 注意,这种方法只适用于JPEG格式的图片。 对于PNG格式的图片,压缩效果可能不明显。

JS如何操作图片JS如何操作图片JS如何操作图片JS如何操作图片JS如何操作图片JS如何操作图片预览图片JS如何操作图片

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

608

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

646

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

466

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2886

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

503

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

311

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

423

2023.09.01

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

61

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
R 教程
R 教程

共45课时 | 5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号