Печать изображения Java ESC / POS во всю ширину

#java #image #printing #escpos

Вопрос:

Я пытаюсь распечатать изображение с помощью команды Esc / Pos, которая приведена в этом блоге. Печать идет нормально, но я хочу выровнять изображение по центру и подогнать под формат бумаги. Я печатаю это изображение:

и выводится следующим образом:

Мой код такой же, как и в этом сообщении в блоге, но я меняю getPixelsSlow(BufferedImage image) метод на этот метод two, потому что у Android нет BufferedImage класса.

 private int[][] getPixelsSlow(Bitmap image) {
  int width = image.getWidth();
  int height = image.getHeight();
  int[][] result = new int[height][width];
  for (int row = 0; row < height; row  ) {
    for (int col = 0; col < width; col  ) {
      result[row][col] = getRGB(image, col, row);
     }
   }

  return resu<
}

private int getRGB(Bitmap bmpOriginal, int col, int row) {
   // get one pixel color
   int pixel = bmpOriginal.getPixel(col, row);
   // retrieve color of all channels
   int R = Color.red(pixel);
   int G = Color.green(pixel);
   int B = Color.blue(pixel);
   return Color.rgb(R, G, B);
}
 

Как я могу напечатать изображение во всю ширину?. Спасибо!

Ответ №1:

При поиске в Интернете вы найдете библиотеку или метод, который преобразует вертикальный и горизонтальный размер данных изображения и преобразует его в соответствии с максимальной шириной бумаги для печати.

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

Лучше заранее создавать и использовать данные изображения, соответствующие ширине бумаги, которую нужно распечатать.

Например, если вы используете GIMP для увеличения ширины до 512 и высоты до 217 в формате JPEG, это будет выглядеть следующим образом.
Увеличить изображение

Или, если вы увеличите его до того же размера с помощью Windows Paint, а затем преобразуете его в BMP в монохромном двоичном формате, это будет выглядеть следующим образом.
Увеличениемонохромная краска

Вместо того, чтобы выполнять такое преобразование, оно будет намного красивее и эффективнее для маркетинга и т. Д. если вы создаете дизайн, указав ширину 512 с самого начала.