2015-06-06 5 views
0

Я разрабатываю приложение, которое генерирует изображения .png с видео 1080p. Но pngs в MBs, и даже мое приложение рушится из-за большого размера png. Я хочу сжать или что-то в этом роде, чтобы уменьшить размер каждого png. Я сделал много методов, таких как createScaledBitmap, или compress(CompressFormat.PNG, 20, stream); или Bitmap.createBitmap(source, 0, 0, source.getWidth(),source.getHeight(), m, true); также искал множество методов. Но это не уменьшает размер столько, сколько я хочу. он по-прежнему остается в 2.2+ MB за png. Любая идея, кроме этих. Благодарю.Сжатие видео 1080p pngs в небольшом размере

+0

Я также создаю приложение, которое имеет дело с изображениями высокого разрешения. Но на стороне сервера я сжимаю и изменяю размер изображения на стороне сервера, используя «thumbnailator-0.4.8.jar». – aviundefined

+0

Вы найдете информацию по этому вопросу/ответу полезной. http://stackoverflow.com/a/10652312/940834 – Doomsknight

+0

Растровое изображение использует много памяти. Если PNG равен 2,2 + МБ, вы можете предположить, что битмап будет еще больше. Вам необходимо сжимать формат изображения с потерями (JPEG) или уменьшить размер/качество PNG. Вероятно, вам лучше перейти на JPG. –

ответ

0

Я также создаю приложение, которое имеет дело с изображениями с высоким разрешением, но на стороне сервера. Я сжимаю и повторно изменяю изображение на стороне сервера, используя thumbnailator-0.4.8.jar. Пример

InputStream in = new ByteArrayInputStream(bytes); 
BufferedImage bImageFromConvert = ImageIO.read(in); 
BufferedImage newImage = Thumbnails.of(bImageFromConvert).size(213, 316).asBufferedImage(); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ImageIO.write(newImage, "jpg", baos); 
baos.flush(); 
retVal = baos.toByteArray(); 
baos.close(); 
+0

@Marco Извините за поздний ответ, я попробую этот источник. –

+0

Нет проблем, но на самом деле @aviundefined дал ответ, я только что отредактировал его ... –