input上传图片翻转问题,前端判断照片是否横屏拍摄

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02 每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。 阅读详情

input文本框上传图片, 苹果和小米手机照片翻转问题 ,身份证照片前端判断是否横屏拍摄

HTML内容

<input type=""file accept="image/*" @change="uploadPic($event)">

uploadPic方法

 import EXIF from"exif-js"
 uploadPic(e, type, fn) {
 	  //利用fileReader对象获取file
      let file = e.target.files[0];
      let filesize = file.size;
      let that = this;
      //去获取拍照时的信息
      EXIF.getData(file, function () {
        EXIF.getAllTags(this);
        that.orientation = EXIF.getTag(this, "orientation")
      });
      if (filesize > 51200000) {
        this.tkToast = {
          title: "图片大小不超过50k", 
          duration: 3000
        }
        return false
      }
      let reader = new FileReader();
      reader.onload = e => {
        let result = e.target.result;
        if (result.length <= 100 * 1024) {
          this.faceImgid = result;
          fn(this.faceImgid, type)
        } else {
        //base64图片大于10M  进行压缩
          this.compress(result, this.orientation, type, fn)
        }
      };
      reader.readAsDataURL(file);
    },

compress压缩方法

 compress(result, orientation, type, fn) {
      let image = new Image();
      image.src = result;
      image.onload = () => {
        let imgWidth = image.width, 
        imgHeight = image.height;
        if (type === "cidz" || type === "cidf") {
          //照片横屏前端判断
          if (imgWidth < imgHeight) {
            this.tkToast = {
              title: "上传的照片格式不正确,请横屏拍摄",
              duration: 3000
            };
            return false;
          }
        }
        let canvas = document.createElement("canvas"), 
        ctx = canvas.getContext("2d");
        canvas.width = imgWidth;
        canvas.height = imgHeight;
        if (orientation && orientation != 1) {
          switch (orientation) {
            case 6:
			  if (type === "cidz" || type === "cidf") {
        	  //照片横屏前端判断
            	 this.tkToast = {
             	   title: "上传的照片格式不正确,请横屏拍摄",
             	   duration: 3000
           		};
           	  	 break;
        	  }
			//旋转90°,苹果和小米手机自动识别照片的长边为canvas画布宽,所以竖屏拍照绘图时,canvas的宽高要对调
			  canvas.width = imgHeight;
              canvas.height = imgWidth;
              ctx.rotate(Math.PI / 2);
              ctx.drawImage(image, -imgWidth, -imgHeight);
              this.faceImageid = canvas.toDataURL("image/jpeg", 0.5);
              break;
            case 3://旋转180°
              ctx.rotate(Math.PI);
              ctx.drawImage(image, -imgWidth, -imgHeight);
              this.faceImageid = canvas.toDataURL("image/jpeg", 0.5);
              break; 
            case 8://旋转-90
			  if (type === "cidz" || type === "cidf") {
        	  //照片横屏前端判断
            	 this.tkToast = {
             	   title: "上传的照片格式不正确,请横屏拍摄",
             	   duration: 3000
           		};
           	  	 break;
        	  }
			//旋转90°,苹果和小米手机自动识别照片的长边为canvas画布宽,所以竖屏拍照绘图时,canvas的宽高要对调
			  canvas.width = imgHeight;
              canvas.height = imgWidth;
              ctx.rotate((3*Math.PI) / 2);
              ctx.drawImage(image, -imgWidth, -imgHeight);
              this.faceImageid = canvas.toDataURL("image/jpeg", 0.5);
              break;
          }
        }else{
			ctx.drawImage(image,0,0,imgWidth,imgHeight);
             this.faceImageid = canvas.toDataURL("image/jpeg", 0.5);
		}
		fn(this.faceImageid,type)
      }
    }
判断横屏竖屏(三种) 在做移动端页面的时候经常会遇到需要判断横屏还是竖屏。下面将目前已知的通过HTML,CSS,JS三种判断方法记录下来,方便以后翻阅。 1、通过在html中分别引用横屏和竖屏的样式:   <link rel=stylesheet media=all and (orientation:portrait) href=portrait.css rel=external nofollow > //引用竖屏的CSS   <link rel=stylesheet media=all and (orientation:landscape) href=landscape.css re 立即下载

相关推荐

从SolidWorks到Simulink:手把手教你用URDF文件搭建六轴机械臂仿真模型(含STL文件配置避坑)

本文详细介绍了从SolidWorks到Simulink的六轴机械臂URDF仿真全流程,包括URDF文件导出、Simscape模型生成与调试、动力学参数获取与验证等关键步骤。重点解决了STL文件配置、关节接口设置等工程化难题,帮助开发者高效构建可控制的数字孪生体。通过实战案例和优化技巧,提升机械臂仿真效率与准确性。

weixin_26812607的博客 266

jquery 图片的尺寸来判断图片是横图还是竖图,判断过后给予不同的展示方式

Title * { margin: 0; padding: 0; } ul { list-style:none; margin: 0; padding: 0; } ul li {

anran_1211的博客 4303

HALCON实战:用两个工业相机实现无缝大视野拼接(附完整代码与避坑指南)

本文详细介绍了使用HALCON软件实现双工业相机图像无缝拼接的完整解决方案,涵盖硬件配置、相机标定、坐标系转换和图像拼接等关键步骤。通过高精度标定和矩阵变换技术,可构建大视野检测系统,适用于液晶面板、PCB等工业检测场景,显著提升检测效率和精度。

weixin_29050513的博客 191

input调起ios摄像头拍照旋转问题解决思路

背景 input标签调起ios原生摄像头拍照时,上传照片发现照片向左旋转了90度 旋转的原因: 手机拍照会给图片添加一个Orientaion信息(即拍照方向),如下: 用ios手机拍照,系统会给图片加上一个方向的属性, ios相机默认的拍照方向是后摄Home键在右为正,前摄Home键在左为正。 1代表正常的拍摄角度,ios横屏下拍摄、安卓机无论横屏竖屏拍摄,Orientaion的值都为1;但是ios竖屏拍摄,Orientaion的值为6,即竖着拍出的照片被添加了一个顺时针旋转90°的拍照方向,显示的时候其

weixin_41643133的博客 3585

立创开源便携式多生理参数监护仪:基于STM32H743与ADS1292R的心电血氧体温监测系统设计

本文详细解析了基于STM32H743与ADS1292R的便携式多生理参数监护仪开源设计。项目集成了心电、血氧和体温监测功能,采用模块化硬件架构,并重点介绍了利用FIR滤波和Pan-Tompkins算法进行心电信号处理的核心技术。文章提供了完整的复刻指南与避坑要点,是学习医疗电子设备设计的优秀实践案例。

weixin_30600615的博客 327

Costas环参数调优指南:QPSK载波同步中的环路滤波器设计技巧

本文深入解析QPSK载波同步中Costas环的参数调优,特别是环路滤波器的设计技巧。通过分析星座图异常现象,提供从理论计算到MATLAB仿真的实战调优指南,涵盖环路带宽、阻尼系数等关键参数在不同信噪比场景下的选择策略,旨在解决载波同步失锁、性能下降等工程难题。

weixin_29035147的博客 546

js获取input的value值_轻松读取图像元数据—Exif.js

Exif.js是一个轻量级的JavaScript提取图像元数据工具库,提供了利用 JavaScript 读取图像的原始数据的功能扩展,常用于从jpg/tiff 格式的图像文件中读取EXIF元数据,例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据。- 源地址 -https://github.com/exif-js/exif-js- 安装方式 -•下载源文件直接...

weixin_39541121的博客 681

01 Aras Innovator二次开发实战:从IOM到AML的完整交互指南

本文详细介绍了Aras Innovator二次开发实战,从IOM到AML的完整交互指南。通过JavaScript和C#代码示例,展示了如何在客户端和服务端使用IOM进行开发,并深入解析AML语言的基础语法和调试技巧。文章还提供了文档管理和BOM管理等典型场景的实战案例,帮助开发者快速掌握Aras Innovator二次开发的核心技术。

wind6的博客 650

利用exif.js解决ios手机上传竖拍照片旋转90度问题

html //压缩图片 function compress(ele) {        var self = ele;        var fileName = $(ele).attr("name");        var file = self.files[0];        var r = new FileReader();        r.readAsD

wk的博客 2178

RK3588开发板NPU加速YOLO目标检测完整实战教程

🚀 RK3588开发板NPU加速YOLO目标检测实战 本文详细介绍了如何在瑞芯微RK3588开发板上利用内置NPU加速YOLO目标检测的全流程: 1️⃣ 环境准备:配置RKNPU2 SDK和aarch64交叉编译器,搭建Ubuntu开发环境 2️⃣ 模型转换:从ONNX格式转换为专用RKNN模型,适配NPU硬件特性 3️⃣ 性能对比:NPU推理将处理时间从833ms降至50ms以下,帧率提升16倍 4️⃣ 实战应用:支持图像/视频流/摄像头实时检测,提供完整编译和运行命令 关键优势:专为边缘AI设计的6T

FJN110的博客 931

226届数字IC秋招笔试面试全攻略

本文系统介绍了数字IC设计岗位面试的核心技巧,聚焦三大关键环节:自我介绍、项目介绍和技术问题回答。在自我介绍部分,强调1-2分钟结构化表达,突出与岗位匹配的技能和量化成果;项目介绍环节提出"背景-职责-技术-难点-成果"五步框架,建议结合架构图和性能数据展示技术深度;技术问题回答策略包括理解问题、结构化思考、举例说明和诚实应对未知。文章还提供了项目包装方法,指导如何通过量化数据、架构创新展示和技术难点解决方案来突出项目亮点,并附有简历项目描述示例和技术问题回答模板,帮助面试者全方位展示专

2301_79143213的博客 1062

上传图片判断上传的图片是横向还是纵向

【代码】上传图片判断上传的图片是横向还是纵向。

qq_46738283的博客 720

独创改进 | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构

独创改进🚀! | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构

Coding... 2211

根据图片完整路径,获得图片的宽和高,判断是横版还是竖版图片

判断图片是横版还是竖版图片,就要获得图片的宽和高,有两种获得方式 1、图片在同一个机器(本地)可以预览 /** * @function:根据图片完整路径,判断是横版还是竖版图片 * @param imagePath * @return true是竖版,false是横版 */ private static boolean getVerticalImage(String ima

红桃峰峰 的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【原创】批量区分横屏竖屏照片

程序会在指定的目录下创建两个子文件夹,并将图片分类复制到对应的文件夹中。原始图片保持不变,所以您不用担心图片丢失。

jxyk2007的专栏 976

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ios上传图片旋转问题解决方案(input拍照上传)

这其实是在使用input获取照片的时候,ios对照片进行了二次加工造成的,这种情况可以使用compressorjs库来解决。使用input,调起ios原生照相机,拍照后获取的图片上传阿里云,从阿里云获取的图片却旋转了90度,这个问题如何解决呢?然后在代码中使用,将获取的file文件使用库中的方法进行加工,将ios的旋转校正回来,然后再将结果上传就可以了。首先引入compressorjs。

技术圈 857

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

解决H5项目中 ios 端使用 input 或者 antd mobile 上传图片组件图片展示与拍摄方向不一致的问题

这个问题可能是由于图片的EXIF数据中的方向标签(Orientation)没有被正确处理导致的。当你用手机拍摄一张照片时,手机会在EXIF数据中记录下照片的拍摄方向。然而,一些浏览器(包括一些版本的iOS Safari)在显示图片时并不会考虑这个方向标签,所以图片可能会被错误地旋转。要解决这个问题,你可以在上传图片之前使用JavaScript库(如exif-js或)来读取图片的EXIF数据,并根据方向标签来旋转图片。以下是一个使用。

weixin_42466981的博客 826

前端input图片的上传和压缩以及图片旋转90度问题解决

最近的微信项目中用到了input标签来上传图片文件,遇到两个大问题: 1、图片太大,导致上传速度慢,影响体验,需要压缩后上传; 2、有些手机拍照是横屏的,在页面展示的时候和正常方向相差90度,也就是本该立着的照片躺下了,需要根据具体情况修正后上传; 手机上的效果是这样的: 上传后确是这样的: 而我想要的是正确朝上的图片,查了资料后发现这是一些手机横着拍照导致的: 其实是

donggua_123的博客 1万+

H5判断当前移动端是横屏还是竖屏的方法汇总

H5判断当前移动端是横屏还是竖屏的方法汇总

yiguoxiaohai的博客 2035

jquery 判断照片的方向

手上做到个项目正好需要这块知识,需求是判断手里的照片是横拍的还是竖拍的。 原理:       根据手机相册内照片的EXIF属性判断,EXIF属性里面有个Orientation的值,来确定照片是否需要旋转 Orientation的参数值 参数 0行(未旋转上) 0列(未旋转左) 旋转(方法很多) 1 上 左 0°

IT男也疯狂 5629

html5 判断横竖屏,前端js横竖屏检测的4种方案

最近有人提需求,产品要适配横竖屏,这就令人头秃了呀。这在家办公也不让闲着点。虽然说需求提出来了,但是我们身为一个前端er,还是要有自己的想法呀,我们要统计一波数据看看到底有多少人在横屏使用我们的产品。方案一:orientationwindow.addEventListener("orientationchange", function(event) {// 等于0或者180竖屏// 等于90或者-...

weixin_29523195的博客 2119

移动端上传照片 预览(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上。   这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1、点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片;

hsany330的专栏 2万+

Exif 格式介绍和操作

Exif 格式介绍和操作Exif 是什么Exif 格式如何修改Exif数据1. 修改单个或者多个数据2. 复制整个Exif数据参考: Exif 是什么 Exif是一种图像文件格式,可以记录数码照片的属性信息和拍摄数据; 实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的相机品牌、型号、光圈、焦距、白平衡等相机硬件信息和图片参数信息。 主要包括以下几类信息: 拍摄日期 拍...

Andreaw的专栏 3867

前端获取图片exif信息

对又是我,每天都有新的需求。这次的需求是上传图片的时获取图片的宽高、设备、光圈等信息。 不用考虑服务端做,他们肯定是不做。pc、android、ios 都支持了,现在就缺少 web 这边上传的图片了。 获取图片宽高 img = new Image(); img.src = URL.createObjectURL(file) img.onload = function(){ console.log(img.naturalWidth || img.width) } URL.cr..

高先生的猫 2501
上一篇: vue上选项卡点击切换且能滑动切换
下一篇: 一次提交触发两次请求
雁菲子
博客等级 码龄8年 6粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值