我正在尝试使用Chrome和Firefox中HTML5支持的“FileReader”和“File”API将图像转换为二进制数组,但它似乎无法在Chrome上正常工作。我只有一个简单的HTML页面,其中有一个文件作为输入类型:从这里开始,我使用jQuery获取图像的内容,然后使用API:File.getAsBinary()将其转换为二进制数组。这在Firefox上完美运行,但在Chrome上运行不正常:$('#image_upload').change(function(){varfileList=this.files;varfile=fileList[0];vardata=file.g
我有一些恰好是PNG的二进制数据。我想把它变成一个blob,获取blob的URL并将其显示为图像(或图像URL有效的任何其他地方,如css等。)这是我尝试过的。首先,我制作了一个带有黄色“F”图像的8x8红色小方block,并使用pngcrush将其缩小您可以看到原始的91字节图像显示得很好(它只有8x8像素)然后,对于这个示例,我将其转换为一个JavaScript数组,将其复制到一个Uint8Array中,我从中创建一个blob并从该blob中创建一个URL,将其分配给图像,但图像不显示。vardata=newUint8Array([137,80,78,71,13,10,26,10,
我有一些恰好是PNG的二进制数据。我想把它变成一个blob,获取blob的URL并将其显示为图像(或图像URL有效的任何其他地方,如css等。)这是我尝试过的。首先,我制作了一个带有黄色“F”图像的8x8红色小方block,并使用pngcrush将其缩小您可以看到原始的91字节图像显示得很好(它只有8x8像素)然后,对于这个示例,我将其转换为一个JavaScript数组,将其复制到一个Uint8Array中,我从中创建一个blob并从该blob中创建一个URL,将其分配给图像,但图像不显示。vardata=newUint8Array([137,80,78,71,13,10,26,10,
如何获得blob?HTML:JavaScript:functionpreviewFile(){varfile=document.querySelector('input[type=file]').files[0];varreader=newFileReader();//Getblob?console.log(file);} 最佳答案 正如评论中所指出的,file是一个blob:fileinstanceofBlob;//true并且您可以使用文件读取器API获取其内容https://developer.mozilla.org/en/d
如何获得blob?HTML:JavaScript:functionpreviewFile(){varfile=document.querySelector('input[type=file]').files[0];varreader=newFileReader();//Getblob?console.log(file);} 最佳答案 正如评论中所指出的,file是一个blob:fileinstanceofBlob;//true并且您可以使用文件读取器API获取其内容https://developer.mozilla.org/en/d
在现代浏览器中,可以将大对象分配为Blob,然后通过URL请求访问它。此URL将在浏览器的其他位置提供存储的对象(例如图像数据)。浏览器如何知道何时不再需要此URL,以及相应的Blob数据是否可以被垃圾收集? 最佳答案 浏览器最终会清除此资源,但可能需要一段时间(几小时或几天)才能将其从内存/磁盘中删除。如果您希望明确删除该对象,您可以通过revokeObjectURL来实现。varblob=newBlob([/*JPEGdata*/],{type:"image/jpeg"}),url=(window.URL||window.web
在现代浏览器中,可以将大对象分配为Blob,然后通过URL请求访问它。此URL将在浏览器的其他位置提供存储的对象(例如图像数据)。浏览器如何知道何时不再需要此URL,以及相应的Blob数据是否可以被垃圾收集? 最佳答案 浏览器最终会清除此资源,但可能需要一段时间(几小时或几天)才能将其从内存/磁盘中删除。如果您希望明确删除该对象,您可以通过revokeObjectURL来实现。varblob=newBlob([/*JPEGdata*/],{type:"image/jpeg"}),url=(window.URL||window.web
我已经使用cropper.js创建了一个应用程序用于裁剪图像。应用程序正在运行并且正在裁剪图像,之后我尝试将裁剪后的图像作为blob发送到服务器端进行存储,根据cropper.js文档,我们可以使用canvas.toDataURL获取数据URL,或使用canvas.toBlob获取blob并使用FormData将其上传到服务器。当我尝试canvas.toDataURL()时,我得到了base64字符串,但实际上我需要将文件作为blob发送,所以我尝试使用canvas.toBlob()但我我得到UncaughtTypeError:canvas.toBlobisnotafunction在c
我已经使用cropper.js创建了一个应用程序用于裁剪图像。应用程序正在运行并且正在裁剪图像,之后我尝试将裁剪后的图像作为blob发送到服务器端进行存储,根据cropper.js文档,我们可以使用canvas.toDataURL获取数据URL,或使用canvas.toBlob获取blob并使用FormData将其上传到服务器。当我尝试canvas.toDataURL()时,我得到了base64字符串,但实际上我需要将文件作为blob发送,所以我尝试使用canvas.toBlob()但我我得到UncaughtTypeError:canvas.toBlobisnotafunction在c
尝试将Htmlcanvas元素转换为blob时,MicrosoftEdge浏览器出现异常。一切都在普通浏览器上运行良好。异常:SCRIPT438:Objectdoesn'tsupportpropertyormethod'toBlob'HTML片段:Javascript:varfiles[];varcanvas=document.getElementById('cnv');canvas.toBlob(function(blob){files.push(blob);}},'image/jpeg',1);当我调用toBlob方法时,我得到了这个异常。有什么方法可以教Edgeblob转换吗?我