Я использую код ZXing для создания QR-кодов.Я получил пример кода здесь: http://www.vineetmanohar.com/2010/09/java-barcode-api/, и изображение в формате PNG выглядит хорошо, черно-белое, как и ожидалось.
В комментариях к примерам кода упоминается, что я мог использовать формат tiff или jpeg, поэтому я изменил переменную imgeFormat на jpeg.Создается правильное изображение QR-кода, но вместо того, чтобы быть черно-белым, «белая» часть имеет персиковый цвет, а «черная» - синий.
Я вырезал и вставил код ZXing MatrixToImageWriter в свой код и установил цвета вместо использования int BLACK = 0xFF000000;и int WHITE = 0xFFFFFFFF;Я обнаружил, что, заменив переменную BLACK на 0x00000000, я получил черный цвет на своем изображении, но мне не удалось найти значение для переменной WHITE, которое дает мне белый цвет.
Прикрепленный QR-код нечетного цвета. К сожалению, я слишком новичок в пользователе, чтобы прикрепить изображение.Надеемся, что эта ссылка на imgur.com работает: http://imgur.com/QnNXO
Вот код Java:
package zxing_qr;
import java.io.File;
import java.io.FileOutputStream;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
// by passing MatrixToImageWriter call
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.Graphics2D;
public class Main {
public static void main(String[] args) {
//String text = "98376373783"; // this is the text that we want to encode
String text = "blahblahblah"; // this is the text that we want to encode
int width = 400;
int height = 300; // change the height and width as per your requirement
// (ImageIO.getWriterFormatNames() returns a list of supported formats)
String imageFormat = "jpg"; // could be "gif", "tiff", "jpeg"
try {
BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, width, height);
MatrixToImageWriter.writeToStream(bitMatrix, imageFormat, new FileOutputStream(new File("qrcode_97802017507991.jpg")));
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // end main function
} // end main class