#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 с самого начала.