从blob存储链接时,为什么SVG图像不显示
时间: 2023-09-13 20:08:47 浏览: 39
SVG图像在Blob中存储时,需要设置正确的MIME类型才能正确地显示。如果MIME类型不正确,则浏览器无法正确解析SVG图像。您可以尝试使用以下代码设置正确的MIME类型:
```
const svgBlob = new Blob([yourSvgData], {type: 'image/svg+xml'});
const svgUrl = URL.createObjectURL(svgBlob);
```
在使用svgUrl时,确保将正确的MIME类型设置为'image/svg+xml',这样SVG图像就能正确显示了。
相关问题
svg-blob怎么将svg字符串保存为.svg图片
要将SVG字符串保存为.svg图片,你可以使用SVG-Blob库。
你可以这样做:
1. 安装SVG-Blob:`npm install svg-blob`
2. 在你的代码中引入SVG-Blob:`import { SVGBlob } from 'svg-blob'`
3. 使用SVGBlob类的toBlob()方法将SVG字符串转换为Blob对象:
```
const svgString = '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><rect x="10" y="10" width="100" height="100" fill="red"/></svg>';
const blob = new SVGBlob(svgString);
const blobUrl = URL.createObjectURL(blob);
```
4. 最后,你可以使用HTML5的`download`属性下载Blob对象作为.svg图片:
```
const link = document.createElement('a');
link.download = 'my-image.svg';
link.href = blobUrl;
link.click();
```
这样,你就可以将SVG字符串保存为.svg图片了。
为什么blob不是迭代
非常抱歉,我之前的回答有误。
你是对的,代码中的 `blob` 是一个迭代变量,用于遍历 `blobs` 列表中的每个元素。在每次循环中,它代表当前正在处理的 blob。
代码通过计算 `blob` 的宽度(`blob[2]`)和高度(`blob[3]`)的乘积来计算 blob 的面积。这个面积与 `max_size` 进行比较,如果大于 `max_size`,则更新 `max_blob` 和 `max_size` 的值。
所以,实际上 blob 是一个迭代变量,用于遍历 blobs 列表中的每个元素。非常抱歉之前的回答给你带来了混淆。