Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 在Blazor WebAssembly中使用RequestImageFileAsync时控制格式_Image Processing_File Upload_Blazor Webassembly - Fatal编程技术网

Image processing 在Blazor WebAssembly中使用RequestImageFileAsync时控制格式

Image processing 在Blazor WebAssembly中使用RequestImageFileAsync时控制格式,image-processing,file-upload,blazor-webassembly,Image Processing,File Upload,Blazor Webassembly,Blazor Web assembly提供了一种方便的方法,可以将包含图像的IBrowserFile转换为调整大小的版本,这对于在上载大型图像之前调整其大小非常方便 此方法将格式作为字符串,用于确定输出文件的格式 是否有此属性将接受的有效格式列表?您可以在生成的文件上指定压缩或位深度值吗 目前,如果我获取一个现有的.jpg文件,并使用“jpg”格式字符串将其转换为结果文件,尽管较小的像素尺寸实际上是磁盘大小的两倍。大约2.8MB的4000x3000图像可以“缩小”为7.7MB的2000x1500

Blazor Web assembly提供了一种方便的方法,可以将包含图像的IBrowserFile转换为调整大小的版本,这对于在上载大型图像之前调整其大小非常方便

此方法将格式作为字符串,用于确定输出文件的格式

是否有此属性将接受的有效格式列表?您可以在生成的文件上指定压缩或位深度值吗

目前,如果我获取一个现有的.jpg文件,并使用“jpg”格式字符串将其转换为结果文件,尽管较小的像素尺寸实际上是磁盘大小的两倍。大约2.8MB的4000x3000图像可以“缩小”为7.7MB的2000x1500图像。当目的是减少上传大小时,这显然没有帮助。我可以轻松上传2.8MB的文件,并在服务器上更有效地调整大小

var imageFile = await file.RequestImageFileAsync("jpg", 2000, 2000);
这表明我使用的方法不正确——但是微软关于这个方法的文档并没有给出有效的“格式”字符串可能是什么的线索,只是说它是一种字符串类型。我尝试了“.jpg”、“JPEG”、“jpg”-所有这些似乎都产生了相同的有效jpg文件。我应该在这里传递什么来实际减少文件大小?

我认为此方法使用html类型:

请尝试“image/jpg”

不过要小心,这是对浏览器的请求,浏览器可以发回它想要的任何东西。我相信这在所有浏览器上都可以正常工作,但您最好检查一些常见的问题(嗨,Opera!)以确认。

请参见


它实际上不是“image/jpg”,而是“image/jpeg”。如果指定不存在的格式,则回退(至少对我来说)似乎是“image/png”。这就是为什么您总是得到一个有效的图像,但文件大小相同。

遗憾的是,使用“image/jpg”与使用jpeg或jpg具有相同的效果。缩减后的文件仍然比原始文件大(以字节为单位)。我明白了。但我很确定生成的图像符合您指定的尺寸,对吗?我也注意到了。我还注意到,在我的测试用例中,调用.jpg或.png会产生完全相同的文件大小,这让我认为传入的文件是未压缩的。在我的例子中,我上传了怪物图像(比如50MB),高清图像的传输速度是1.7MB,这是一个巨大的节省——但压缩的高清图像更像是500KB左右。如果您想在客户端使用正确的设置进行压缩(.8),那么可能需要在JS中进行处理。