👻

イメージへのパスからBlobUrlを取得する

2023/05/25に公開

featchで取得し、URL.createObjectURLでオブジェクトURLを生成する

const convertToBlobUrl = async (imagePath: string) => {
	const response = await fetch(imagePath);
	if (!response.ok) {
	    throw new Error(`Failed to fetch image: ${response.status} ${response.statusText}`);
	}
	const blob = await response.blob();
	return URL.createObjectURL(blob);
};

URL.createObjectURL()
でオブジェクトURLを生成したら、
URL.revokeObjectURL()
でオブジェクトURLを解放する必要あり

blobUrlをsetDataUrl

const [dataUrl, setDataUrl] = useState("");
useEffect(() => {
	convertToBlobUrl(imageUrl).then((blobUrl) => {
		setDataUrl(blobUrl);
	});
}, [imageUrl]);

return {
	<Sample url={dataUrl} />
}

Discussion