Как использовать и конвертировать файл изображения в Uint8Array в родной реакции?

Я работаю над React-Native-OpenPGP для шифрования и дешифрования. Я хочу взять изображение из моей папки (выборка локального изображения)/URL-адрес изображения и преобразовать это изображение в Uint8Array для шифрования/дешифрования. Я новичок в том, чтобы реагировать на родные, не могу найти лучшего решения. Ссылки также могут помочь. Нужен процесс, чтобы указать путь к изображению и преобразовать его в Uint8Array.

Кроме того, также необходимо решение для преобразования файла изображения в двоичные данные для шифрования/дешифрования. Возможно ли это, поскольку openpgp предоставляет два способа сделать это: один через String, а другой через данные Uint8Array?


person Diksha235    schedule 06.03.2019    source источник
comment
Вам интересно узнать о других альтернативах шифрованию и расшифровке файла изображения? Вы можете использовать комбинацию формата кодирования base64 + AES. Оставьте комментарий, если вы хотите, чтобы я написал образец решения для него.   -  person Ron Astle Lobo    schedule 06.03.2019
comment
@Ron Нет, прямо сейчас я хочу это в формате кодировки openpgp base64 + PGP. Спасибо за это Передам вам, когда мне понадобятся альтернативные решения   -  person Diksha235    schedule 06.03.2019


Ответы (1)


Каким-то образом, потратив на это день, мне удалось преобразовать файл изображения в BLOB через b64-to-blob. Эта прикрепленная ссылка помогла мне сделать это. Я сделал это таким образом:

Шаг 1: импортируйте ImgToBase64 из 'react-native-image-base64';

Шаг 2: вам необходимо установить npm i -S base-64 (для кодирования и декодирования в atob, btoa)

Шаг 3. импортируйте {декодировать как atob, кодировать как btoa} из base-64.

Шаг 4: var b64toBlob = require('b64-to-blob'); , var baseStringSample;

Шаг 5. Создайте функцию для преобразования изображения в формат base64.

_convertImageToBaseSixFour() { 

    ImgToBase64.getBase64String('YOUR_IMAGE_PATH') // path to your image from local storage
  .then((base64String) => {
        baseStringSample = base64String,
        })
  .catch(err => Alert.alert('Error' + err));

}

Шаг 6:

// ****** CONVERT BASE64 TO BLOB ******* //

  _imageToBlob(){

    var byteCharacters = atob(baseStringSample);
    var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
    byteArray = new Uint8Array(byteNumbers);
    console.log("BYTEARRAY: " + byteArray);
}

} 

Шаг 7: Затем сгенерированы ключи, выполнено шифрование и дешифрование с помощью метода UInt8Array в библиотеке openpgp.

Шаг 8. Преобразование расшифрованного изображения в base64, а затем base64 в Image , отображение изображения в Imageview.

person Diksha235    schedule 07.03.2019