#zxing
#zxing
Вопрос:
Недавно я начал небольшой проект, в котором я хотел использовать zxing. Я скачал исходные тексты отсюда. Мне удалось успешно собрать ядро и банки javase.
Когда я попытался написать код по приведенному здесь образцу, я столкнулся с проблемой, которую я не совсем понимаю. Пока код выглядит так:
public static void main(String[] args)
{
Reader reader = new MultiFormatReader();
ImageIcon imageIcon = new ImageIcon(SOMEPATH);
Image image = imageIcon.getImage();
BufferedImage buffImage = new BufferedImage(
image.getWidth(null),
image.getHeight(null),
BufferedImage.TYPE_INT_RGB);
Graphics2D g = buffImage.createGraphics();
g.drawImage(image, null, null);
LuminanceSource source = new BufferedImageLuminanceSource(buffImage);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
}
Как вы можете видеть, это практически тот же код, который представлен в сносках для разработчиков. Но код не будет компилироваться. Сообщение об ошибке:
Type mismatch: cannot convert from BufferedImageLuminanceSource to LuminanceSource
Кто-нибудь знает, чего мне не хватает?
Редактировать: мой импорт в настоящее время выглядит следующим образом:
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Reader;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
Я добавил core.jar так же , как и javase.jar к моему проекту. Оба я скомпилировал с помощью ant, оставив файлы сборки загруженными.
Ответ №1:
Все правильно. У вас, должно быть, есть какие-то забавные вещи в вашем импорте. Эти типы, безусловно, совместимы.
Комментарии:
1. вы что-нибудь изменили в коде? все еще выглядит правильно. Есть ли вероятность, что существуют конфликтующие версии кода? В какой строке возникает ошибка — здесь есть две возможности.
2. Спасибо, что указали, что это определенно должно сработать. После прочтения вашего ответа я отправился в ant, чтобы очистить скомпилированные банки и перекомпилировать их. Это работает 🙂