Загрузив изображение в hbase с помощью программы Java, после извлечения изображения я обнаружил, что разница в размере файла в конечном итоге увеличилась, и большая часть потери Exif и метаданных (данные о местоположении GPS, сведения о камере и т. д.)
Код :
public ArrayList<Object> uploadImagesToHbase(MultipartFile uploadedFileRef){
byte[] bytes =uploadedFileRef.getBytes();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", outputStream);
HBaseAdmin admin = new HBaseAdmin(configuration);
HTable table = new HTable(configuration, "sample");
Put image = new Put(Bytes.toBytes("1"));
image.add(Bytes.toBytes("DataColumn"), Bytes.toBytes(DataQualifier), bytes);
table.put(image);
Как сохранить и получить изображение без каких-либо изменений/потерь?
ImageIO
. - person gudok   schedule 01.05.2016byte[] bytes = uploadedFileRef.getBytes();
, где uploadedFileRef=Multipartfile - person Sharavanakumaar Murugesan   schedule 01.05.2016image
и т. д. Но в любом случае @gudok верен, просто сохраните массивbytes
байтов непосредственно в своей базе данных, и все будет в порядке. - person Harald K   schedule 01.05.2016ImageIO
илиBufferedImage
здесь не нужны. Он должен просто хранить байты в базе данных. - person Harald K   schedule 02.05.2016