Это противоположно этому:
создать BITMAP-изображение из шестнадцатеричной строки Java
Мне нужно взять PNG в качестве входных данных и преобразовать его в HEX-строку. Спецификация создания шестнадцатеричной строки приведена ниже:
Каждый столбец пикселей считывается снизу вверх, при этом четыре пикселя кодируются буквой/цифрой (A–F 0–9) в соответствии с прилагаемой схемой кодирования.
Растровый код — это шестнадцатеричный код, разработанный для оборудования. Каждое число в коде управляет вертикальным участком из четырех виртуальных пикселей на дисплее. первая кодовая буква управляет четырьмя пикселями, начиная с левого нижнего угла и вверх. Вторая кодовая буква управляет четырьмя следующими пикселями над первым, третья — следующими четырьмя над вторыми, а четвертая буква — четырьмя самыми верхними пикселями в первом столбце слева. Затем пятая буква управляет четырьмя нижними пикселями второго столбца и т. д.
Вот что я пробовал, но не помогло

public AppResponse getBitmapCode(MultipartFile pngFile) выдает IOException { BufferedImage img = ImageIO.read(pngFile.getInputStream()); int height = img.getHeight(); int width = img.getWidth(); StringBuilder bitmapCode = новый StringBuilder(); // Обрабатываем каждый столбец for (int x = 0; x = 0; y--) { int rgb = img.getRGB(x, y); // Проверяем, ближе ли пиксель к белому или черному, используя порог int bit = (getColorDistance(rgb, Color.WHITE) < getColorDistance(rgb, Color.BLACK))? 0:1; значение пикселя = (значение пикселя = 0 && PixelValue = 10 && PixelValue