首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 图片90旋转

在JavaScript中实现图片的90度旋转,可以通过操作HTML5的<canvas>元素来完成。以下是基础概念及相关步骤:

基础概念

  1. Canvas API:HTML5提供的一个绘图API,可以在网页上绘制图形、处理图像等。
  2. ImageData:表示画布上的一块矩形区域,包含该区域的所有像素数据。

实现步骤

  1. 加载图片:将需要旋转的图片加载到网页中。
  2. 绘制到Canvas:将图片绘制到一个<canvas>元素上。
  3. 旋转Canvas:通过变换矩阵旋转画布。
  4. 导出旋转后的图片:将旋转后的画布内容导出为新的图片。

示例代码

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Rotate Image 90 Degrees</title>
</head>
<body>
    <input type="file" id="imageUpload" accept="image/*">
    <canvas id="canvas" style="display: none;"></canvas>
    <img id="rotatedImage" alt="Rotated Image">
    
    <script>
        document.getElementById('imageUpload').addEventListener('change', function(event) {
            const file = event.target.files[0];
            const img = new Image();
            img.onload = function() {
                const canvas = document.getElementById('canvas');
                const ctx = canvas.getContext('2d');
                
                // Set canvas dimensions to the original image's dimensions
                canvas.width = img.height;
                canvas.height = img.width;
                
                // Rotate the canvas context
                ctx.translate(canvas.width / 2, canvas.height / 2);
                ctx.rotate(Math.PI / 2);
                ctx.translate(-img.width / 2, -img.height / 2);
                
                // Draw the image onto the rotated canvas
                ctx.drawImage(img, 0, 0);
                
                // Convert the canvas back to an image
                const rotatedImage = document.getElementById('rotatedImage');
                rotatedImage.src = canvas.toDataURL();
                rotatedImage.style.display = 'block';
            };
            img.src = URL.createObjectURL(file);
        });
    </script>
</body>
</html>

解释

  1. 加载图片:通过文件输入加载用户选择的图片。
  2. 设置Canvas尺寸:为了旋转90度,画布的宽高需要交换。
  3. 旋转画布:通过ctx.rotate(Math.PI / 2)实现90度旋转,注意旋转中心点的调整。
  4. 绘制并导出图片:将原图绘制到旋转后的画布上,然后通过toDataURL()方法导出为新的图片。

应用场景

  • 图片编辑器中的旋转功能。
  • 在线图片处理服务。
  • 社交媒体应用中的图片上传前处理。

注意事项

  • 旋转后的图片尺寸会发生变化,需要进行相应的调整。
  • 处理大图片时要注意性能问题,可能需要分块处理或使用Web Workers。

通过上述方法,你可以轻松实现JavaScript中图片的90度旋转功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

11分50秒

11.图片缩放和旋转.avi

11分50秒

11.尚硅谷_Fresco_图片缩放和旋转.avi

12分1秒

90.尚硅谷_JS基础_邮件的正则

20分52秒

128.尚硅谷_JS基础_切换图片练习

26分5秒

95.尚硅谷_JS基础_图片切换的练习

17分7秒

135.尚硅谷_JS基础_完成点击按钮切换图片

3分54秒

PS使用教程:如何在Mac版Photoshop中制作烟花效果?

领券