Как визуализировать изображения .basis? [дубликат] ⇐ Javascript
Как визуализировать изображения .basis? [дубликат]
По сути, у меня есть код JavaScript, который открывает файл .basis и извлекает из него UInt8Array. Этот массив правильный (он соответствует UInt8Array того же изображения, проходящего через официальный транскодер). Но как мне просмотреть его из UInt8Array?
Я пытался преобразовать в base64, но безуспешно.
async loadBasis(key, url, load) { const xhr = новый XMLHttpRequest(); xhr.open("GET", URL, true); xhr.responseType = "arraybuffer"; xhr.onload = async () => { константные данные = новый Uint8Array(xhr.response); const image = ожидайте this.basisFile(данные); const width = image.getImageWidth(0, 0); const height = image.getImageHeight(0, 0); const images = image.getNumImages(); константные уровни = image.getNumLevels(0); const has_alpha = image.getHasAlpha(); константный формат = 10; const dstSize = image.getImageTranscodedSizeInBytes(0, 0, формат); const dst = новый Uint8Array(dstSize); if (!width || !height || !images || !levels) { console.warn("Неверный файл .basis"); изображение.закрыть(); изображение.удалить(); возвращаться; } если (!image.startTranscoding()) { console.warn("Ошибка запуска транскодирования"); изображение.закрыть(); изображение.удалить(); возвращаться; } if (!image.transcodeImage(dst, 0, 0, format, 0, 0)) { console.warn("image.transcodeImage не удалось"); console.warn("Ошибка транскодирования изображения"); изображение.закрыть(); изображение.удалить(); возвращаться; } }; xhr.отправить(); }
По сути, у меня есть код JavaScript, который открывает файл .basis и извлекает из него UInt8Array. Этот массив правильный (он соответствует UInt8Array того же изображения, проходящего через официальный транскодер). Но как мне просмотреть его из UInt8Array?
Я пытался преобразовать в base64, но безуспешно.
async loadBasis(key, url, load) { const xhr = новый XMLHttpRequest(); xhr.open("GET", URL, true); xhr.responseType = "arraybuffer"; xhr.onload = async () => { константные данные = новый Uint8Array(xhr.response); const image = ожидайте this.basisFile(данные); const width = image.getImageWidth(0, 0); const height = image.getImageHeight(0, 0); const images = image.getNumImages(); константные уровни = image.getNumLevels(0); const has_alpha = image.getHasAlpha(); константный формат = 10; const dstSize = image.getImageTranscodedSizeInBytes(0, 0, формат); const dst = новый Uint8Array(dstSize); if (!width || !height || !images || !levels) { console.warn("Неверный файл .basis"); изображение.закрыть(); изображение.удалить(); возвращаться; } если (!image.startTranscoding()) { console.warn("Ошибка запуска транскодирования"); изображение.закрыть(); изображение.удалить(); возвращаться; } if (!image.transcodeImage(dst, 0, 0, format, 0, 0)) { console.warn("image.transcodeImage не удалось"); console.warn("Ошибка транскодирования изображения"); изображение.закрыть(); изображение.удалить(); возвращаться; } }; xhr.отправить(); }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение