Я разрабатываю приложение, которое генерирует изображения .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
A
ответ
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 дал ответ, я только что отредактировал его ... –
Я также создаю приложение, которое имеет дело с изображениями высокого разрешения. Но на стороне сервера я сжимаю и изменяю размер изображения на стороне сервера, используя «thumbnailator-0.4.8.jar». – aviundefined
Вы найдете информацию по этому вопросу/ответу полезной. http://stackoverflow.com/a/10652312/940834 – Doomsknight
Растровое изображение использует много памяти. Если PNG равен 2,2 + МБ, вы можете предположить, что битмап будет еще больше. Вам необходимо сжимать формат изображения с потерями (JPEG) или уменьшить размер/качество PNG. Вероятно, вам лучше перейти на JPG. –