【问题标题】:ng-file-upload won't convert jpg image to pngng-file-upload 不会将 jpg 图像转换为 png
【发布时间】:2016-09-03 13:21:19
【问题描述】:

我正在尝试使用 ng-file-upload 将文件上传到我的服务器,同时还在客户端调整它的大小并将其转换为 png。从文档来看,这听起来像是可以使用 ngf-resize 属性并将 type 属性设置为 image/png

此处的文档:https://github.com/danialfarid/ng-file-upload/blob/master/README.mdtype 描述为:“类型是可选的,将其转换为给定的图像类型格式。”

当我尝试这个时,它适用于 png 源文件,但如果我使用 jpg 文件,它不会将其转换为 png,而是在 Javascript 控制台中出现此错误:

There were invalid base64 characters in the input text.
Valid base64 characters are A-Z, a-z, 0-9, NaNExpect errors in decoding.

这是我的代码:

<div ngf-drop ngf-select ng-model="file" class="drop-box" 
   ngf-drag-over-class="'dragover'" ngf-multiple="false" 
   ngf-allow-dir="false" accept="image/jpeg,image/jpg,image/png" 
   ngf-pattern="'image/jpeg,image/jpg,image/png'" 
   ngf-resize="{width: 100, height: 100, quality: .8, centerCrop: true, type: 'image/png'}">

是否可以使用 ng-file-upload 将 jpg 转换为 png?还是我有代码问题?我的目标是让浏览器进行转换,以便我的服务器只接收 png 图像。

【问题讨论】:

    标签: javascript angularjs ng-file-upload


    【解决方案1】:

    问题是插件正在尝试恢复 png 文件上的 exif 数据,但由于它不是 jpeg 文件,所以会失败。为避免这种情况,您可以:

    <div ngf-drop ngf-select ng-model="file" class="drop-box" 
       ngf-drag-over-class="'dragover'" ngf-multiple="false" 
       ngf-allow-dir="false" accept="image/jpeg,image/jpg,image/png" 
       ngf-pattern="'image/jpeg,image/jpg,image/png'" 
       ngf-resize="{width: 100, height: 100, quality: .8, 
       centerCrop: true, type: 'image/png', restoreExif: false}">
    

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 1970-01-01
      • 2013-05-10
      • 2021-07-05
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      相关资源
      最近更新 更多