separate image conversions

This commit is contained in:
SethBurkart123
2024-04-04 10:17:25 +11:00
parent 0abd8dadab
commit 7f220266c3
2 changed files with 21 additions and 21 deletions
+2 -21
View File
@@ -1,6 +1,7 @@
import browser from 'webextension-polyfill' import browser from 'webextension-polyfill'
import localforage from 'localforage'; import localforage from 'localforage';
import { CustomImage, CustomImageBase64, CustomTheme, CustomThemeBase64, ThemeList } from '../../interface/types/CustomThemes'; import { CustomImage, CustomImageBase64, CustomTheme, CustomThemeBase64, ThemeList } from '../../interface/types/CustomThemes';
import { base64toblobURL } from '../utils/imageConversions';
const imageData: Record<string, { url: string; variableName: string }> = {}; const imageData: Record<string, { url: string; variableName: string }> = {};
@@ -152,7 +153,7 @@ export const UpdateImageData = (imageData2: { id: string; base64: string }) => {
const { id, base64 } = imageData2; const { id, base64 } = imageData2;
if (imageData[id]) { if (imageData[id]) {
imageData[id].url = base64toblob(base64); imageData[id].url = base64toblobURL(base64);
const { variableName } = imageData[id]; const { variableName } = imageData[id];
document.documentElement.style.setProperty('--' + variableName, `url(${imageData[id].url})`); document.documentElement.style.setProperty('--' + variableName, `url(${imageData[id].url})`);
} }
@@ -172,26 +173,6 @@ function removeImageFromDocument(variableName: string) {
document.documentElement.style.removeProperty('--' + variableName); document.documentElement.style.removeProperty('--' + variableName);
} }
export function base64toblob(base64: string) {
// Extract base64 data from the data URI
const base64Index = base64.indexOf(',') + 1;
const imageBase64 = base64.substring(base64Index);
// Convert base64 to blob
const byteCharacters = atob(imageBase64);
const byteNumbers = new Uint8Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], { type: 'image/png' });
// Convert blob to blob URL
const imageUrl = URL.createObjectURL(blob);
return imageUrl;
}
const applyTheme = async (theme: CustomTheme) => { const applyTheme = async (theme: CustomTheme) => {
let CustomCSS = ''; let CustomCSS = '';
let CustomImages: CustomImage[] = []; let CustomImages: CustomImage[] = [];
+19
View File
@@ -0,0 +1,19 @@
export function base64toblobURL(base64: string) {
// Extract base64 data from the data URI
const base64Index = base64.indexOf(',') + 1;
const imageBase64 = base64.substring(base64Index);
// Convert base64 to blob
const byteCharacters = atob(imageBase64);
const byteNumbers = new Uint8Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], { type: 'image/png' });
// Convert blob to blob URL
const imageUrl = URL.createObjectURL(blob);
return imageUrl;
}