美文网首页Spring-Boot
JavaScript加载图片 用于加载和转换图像文件的JavaS

JavaScript加载图片 用于加载和转换图像文件的JavaS

作者: 70b39f9dc443 | 来源:发表于2019-06-21 16:58 被阅读3次

描述

JavaScript Load Image是一个用于加载以File或Blob对象提供的图像或通过URL加载的库。它返回一个可选的缩放和/或裁剪的HTML img或canvas元素。它还提供了解析图像元数据以提取IPTC和Exif标记以及嵌入的缩略图图像以及在调整大小后恢复完整图像标题的方法。

建立

在HTML标记中包含(合并和缩小的)JavaScript加载图像脚本:

或者,选择要包含的组件:

用法

图像加载

在您的应用程序代码中,使用loadImage()函数,如下所示:

图像缩放

也可以将图像缩放功能与现有图像一起使用:

要求

JavaScript加载映像库没有依赖关系。

但是,JavaScript Load Image是Canvas to Blob库的非常合适的补充 。

API

所述的LoadImage()函数接受 文件或 斑点对象或一个简单的图像的URL(例如'https://example.org/image.png')作为第一个参数。

如果将File或 Blob作为参数传递,则如果浏览器支持URL API或 FileReader对象(如果支持),则返回HTML img元素 ,或者返回false。 它在传递图像URL时始终返回HTML img元素:

loadImage()函数返回的img元素或 FileReader对象允许通过将onload和onerror事件处理程序设置为null 来中止加载过程:

第二个参数必须是回调函数,在加载图像或加载图像时发生错误时调用该函数。回调函数传递两个参数。

第一个是HTML img元素, canvas元素或类型为error的 Event对象。 第二个是对象,原始图像尺寸为属性,可能还有其他元数据:

选项

loadImage()的可选第三个参数是选项映射:

maxWidth:定义img / canvas元素的最大宽度。

maxHeight:定义img / canvas元素的最大高度。

minWidth:定义img / canvas元素的最小宽度。

minHeight:定义img / canvas元素的最小高度。

sourceWidth:要绘制到目标画布中的源图像的子矩形的宽度。

默认为源图像宽度和要求canvas: true。

sourceHeight:要绘制到目标画布中的源图像的子矩形的高度。

默认为源图像高度和要求canvas: true。

top:源图像的子矩形的上边距。

默认为0和要求canvas: true。

right:源图像的子矩形的右边距。

默认为0和要求canvas: true。

bottom:源图像的子矩形的下边距。

默认为0和要求canvas: true。

left:源图像的子矩形的左边距。

默认为0和要求canvas: true。

包含:如果设置为,则向上/向下缩放图像以将其包含在最大尺寸中true。

这模拟了CSS特征 background-image:contains。

封面:如果设置为,则向上/向下缩放图像以覆盖图像尺寸的最大尺寸true。

这模拟了CSS功能 background-image:cover。

aspectRatio:将图像裁剪为给定的宽高比(例如16/9)。

设置aspectRatio也启用该crop选项。

pixelRatio:定义画布像素与屏幕上物理图像像素的比率。

应设置为window.devicePixelRatio除非缩放的图像未在屏幕上呈现。

默认为1和要求canvas: true。

downsamplingRatio:定义图像下采样的比率。

默认情况下,图像会在一个步骤中进行下采样。使用比率0.5,每个步骤在达到目标尺寸之前将图像缩放到尺寸的一半。

需要canvas: true。

crop:如果设置为,则将图像裁剪为maxWidth / maxHeight约束 true。

启用该crop选项也会启用该canvas选项。

取向:根据指定的Exif取向,其可以是一个变换的画布integer中的范围1到8或布尔值true。

设置true为时,它将根据图像的EXIF数据设置方向值,如果exif库可用,将自动解析。

设置orientation也启用该canvas选项。

设置orientation为true也启用该meta选项。

meta:如果设置为,则自动解析图像元数据true。

元数据作为第二个参数的一部分传递给回调。

如果文件以URL形式提供,并且浏览器支持 fetch API,则将文件提取为Blob以便能够解析元数据。

canvas:如果设置为,则将图像作为canvas元素返回 true。

crossOrigin:在img元素上设置crossOrigin属性以加载 启用CORS的图像。

noRevoke:默认情况下, 创建的对象URL 在加载图像后被撤销,除非此选项设置为 true。

它们可以通过以下方式使用:

所有设置都是可选的。默认情况下,图像作为HTML img 元素返回,没有任何图像大小限制。

元数据解析

如果包含Load Image Meta扩展,则还可以使用以下meta选项自动解析图像元数据:

该扩展还提供了方法loadImage.parseMetaData,可以通过以下方式使用:

注意:

可以通过canvas.toBlob()创建已调整大小的图像的Blob对象 。

Meta数据扩展还添加了用于该parseMetaData方法的其他选项 :

maxMetaDataSize:要解析的元数据的最大字节数。

disableImageHead:禁用解析原始图像头。

Exif解析器

如果包含Load Image Exif Parser扩展,则传递给parseMetaData的回调的参数将包含附加属性exif,如果可以在给定图像中找到Exif数据。

该EXIF对象存储解析EXIF标签:

var orientation= data。exif [ 0x0112 ];

它还提供了一个exif.get()方法,通过标签的映射名称检索标记值:

var orientation= data。exif。得到(' Orientation ');

默认情况下,唯一可用的映射名称是Orientation和 Thumbnail。

如果还包括Load Image Exif Map库,则可以使用其他标记映射,以及另外两个方法exif.getText()和 exif.getAll():

varflashText =data。exif。getText(' Flash ');//例如:'Flash fired,auto mode',//所有已解析标记的映射,其映射名称/文本为键/值:varallTags =data。exif。getAll();

Exif解析器还为parseMetaData方法添加了其他选项,以禁用解析器的某些方面:

disableExif:禁用Exif解析。

disableExifThumbnail:禁用解析Exif缩略图。

disableExifSub:禁用Exif Sub IFD的解析。

disableExifGps:禁用Exif GPS Info IFD的解析。

IPTC解析器

如果包含Load Image IPTC Parser扩展,则传递给parseMetaData回调的参数将包含附加属性iptc,如果可以在给定图像中找到IPTC数据。

该IPTC对象存储解析IPTC标签:

var objectname= data。iptc [ 0x5 ];

它还提供了一个iptc.get()方法,通过标签的映射名称检索标记值:

varobjectname =data。iptc。get(' ObjectName ');

默认情况下,唯一可用的映射名称是ObjectName。

如果还包括Load Image IPTC Map库,则可以使用其他标记映射,以及另外两种方法iptc.getText()和 iptc.getAll():

varkeywords =data。iptc。getText(' Keywords ');//例如:['天气','天空']//所有已解析标记的映射,其映射名称/文本为键/值:varallTags =data。iptc。getAll();

IPTC解析器还为parseMetaData方法添加了其他选项,以禁用解析器的某些方面:

disableIptc:禁用IPTC解析。

执照

JavaScript加载映像脚本在MIT许可下 发布。

积分

基于AchimStöhr的帮助和贡献的图像元数据处理实现。

Exif标签基于Jacob Seidelin的exif-js库进行映射 。

Dave Bevan的 IPTC解析器实现。

相关文章

  • JavaScript加载图片 用于加载和转换图像文件的JavaS

    描述 JavaScript Load Image是一个用于加载以File或Blob对象提供的图像或通过URL加载的...

  • 07- webpack 加载图片

    一、JavaScript 加载图片 JavaScript 中加载图片,两种使用方法 加载背景图片 backgro...

  • window.onload()

    load事件通常用于查看文档内容或者图片是否加载完全。 网页中某些javascript脚本均需要在文档内容加载完成...

  • JavaScript--预加载与延迟加载

    JavaScript--预加载与延迟加载 1. 预加载:就是页面打开,图片什么的都加载好了(优先显示图片) 2. ...

  • Glide

    Glide是一个图片加载框架,用于android中加载图片。 加载图片的时候常用的方法有三个,with(),loa...

  • Volley的应用以及源码学习(一)

    Volley是google在2013年推出的一个网络库,用于加载图片和网络请求,相比其他图片加载框架,Volley...

  • 19-webpack 加载图片优化

    在 07-webpack加载图片 中,有2中方式可以加载图片资源 通过 JavaScript ,使用 file-l...

  • imageNamed: 与 imageWithContentsO

    imageNamed: 适用于会重复加载的小图片,因为系统会自动缓存加载的图片,imageWithContents...

  • window.onload&&$(document).ready

    window.onload load事件通常用于检测文档内容或者图片是否加载完毕。网页中的某些JavaScript...

  • Picasso源码解析

    Picasso 是一个强大的图片加载缓存框架 一、使用 二、重要的类 Picasso: 图片加载、转换、缓存的管理...

网友评论

    本文标题:JavaScript加载图片 用于加载和转换图像文件的JavaS

    本文链接:https://www.haomeiwen.com/subject/owluqctx.html