Gl React Expo масштабирует захваченное изображение - PullRequest
0 голосов
/ 23 января 2019

У меня есть проблема, когда выходное изображение с поверхности подвергается масштабированию, при этом разрешение остается прежним.

Некоторые примеры ввода и вывода, а также размер рендеринга поверхности.

Пример 1:

Original Image = {
  height: 2560,
  width: 1440,
}

Final Image = {
  height: 1518,
  width: 854,
}

Surface Size = {
  height: 284.625,
  width: 506
}

Пример 2:

Original Image = {
  height: 357,
  width: 412,
}

Final Image = {
  height: 936,
  width: 1080,
}

Surface Size = {
  height: 360,
  width: 311.9417475728156
}

Для захвата изображения я использую следующий код:

getEditedImage = async () => {
  return await this.image.glView.capture({ quality: 1 });
};

где image представляет поверхность, с которой я снимаю изображение.

Я хочу, чтобы разрешение выходного изображения было точно таким же, как и у входного. У кого-нибудь есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 24 января 2019

вы видите, как использовать здесь.

https://docs.expo.io/versions/v32.0.0/sdk/gl-view/

Формат (строка), сжатие (число) частей, кажется, нужная вам часть.


источник: https://docs.expo.io/versions/latest/sdk/take-snapshot-async/

Эта ссылка содержит описание качества.

takeSnapshotAsync (просмотр, параметры)

  • качество: число - числомежду 0 и 1, где 0 - худшее качество, а 1 - лучшее, по умолчанию 1
const targetPixelCount = 1080; // If you want full HD pictures
const pixelRatio = PixelRatio.get(); // The pixel ratio of the device
// pixels * pixelratio = targetPixelCount, so pixels = targetPixelCount / pixelRatio
const pixels = targetPixelCount / pixelRatio;

const result = await takeSnapshotAsync(this.imageContainer, {
  result: 'file',
  height: pixels,
  width: pixels,
  quality: 1,
  format: 'png',
});
...