Как преобразовать разрешение изображения в дюйм (точек на дюйм) в трепетание дротиков?

#java #android #ios #flutter #dart

Вопрос:

Вопрос связан с (печатью) DPI различных изображений ( например, формата jpeg или png ).

Этот вопрос НЕ относится к DPI экрана или размерам различных устройств Android. Это также НЕ связано с отображением растрового изображения на устройстве в размере экрана.

Ответ №1:

Это приведет к преобразованию разрешения изображения в точках на дюйм в 300.

 Uint8List resultBytes = provider.bytes;
  print(resultBytes.toString());
  
  var dpi = 300;
  resultBytes[13] = 1;
  resultBytes[14] = (dpi >> 8);
  resultBytes[15] = (dpi amp; 0xff);
  resultBytes[16] = (dpi >> 8);
  resultBytes[17] = (dpi amp; 0xff);

  print(resultBytes.toString());

  String tempPath = (await getTemporaryDirectory()).path;
  String imgName = "IMG"   DateTime.now().microsecondsSinceEpoch.toString() ".jpg";
  File file = File('$tempPath/$imgName');
  await file.writeAsBytes(resultBytes);

  /**You will not be able to see the image in android local storage, so rewriting the file, using the code below will show you image in Pictures Directory of android storage. Note: ImageGallerySaver is plugin, just copy and paste the dependency and have a go.*/

  final result1 = ImageGallerySaver.saveFile(file.path);
  print(result1);