Всех приветствую.
Есть такой код:
public void onPreviewFrame(byte[] data,Camera camera){
try{
YuvImage yuvimage=new YuvImage(data,ImageFormat.NV21,this.width,this.height,null);
System.out.println("WidthandHeight"+yuvimage.getHeight()+"::"+yuvimage.getWidth());
ByteArrayOutputStream baos=new ByteArrayOutputStream();
yuvimage.compressToJpeg(new Rect(0,0,this.width,this.height),100,baos);
}catch(Exception e){
Log.d("parse","errpr");
}
}
Он берет изображение с камеры и превращает его в jpg изображение.
Но вот в чем проблема:
Изображение, даже если его качество ужать до 20-ти процентов - весит около 2-х кб (2000 байтов).
Как я понимаю, вес изображения состоит из:
ширина * длина * 3 (3 - три канала. R, G, B).
То есть, если сделать изображение черно-белым - эта формула превращается в нечто иное:
ширина * длина * 1
То есть, тем самым, уменьшая размер изображения в 3 раза!
Я попытался сделать такое.
Но после проверки - оказалось, что изображение-то стало черно-былым, но размер как был, так и остался около 2-х кб.
Код (из RGB в grayscale):
public Bitmap toGrayscale(Bitmap bmpOriginal)
{
int width, height;
height = bmpOriginal.getHeight();
width = bmpOriginal.getWidth();
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);
return bmpGrayscale;
}
Что могло пойти не так? Можно ли уменьшить вес изображения таким способом?
У Вас получилось что в каждом канале лежит одинаковое значение, каналов все равно 4 по 8 бит на канал, как вы указали при создании изображения Bitmap.Config.ARGB_8888
, вы можете воспользоваться другим форматом изображения, однако я не подскажу какие типы и как устроены в андроид.
вот что говорит документация:
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вот в чем вопрос: хочу вывести iFrame с обзором pdf, написал сервлет который отвечает за высылку информации (так как сам pdf находится не в папке...
У меня есть кнопка которая делает скриншотКак сделать какой-то эффект, чтобы было понятно ,что скриншот сделан
Почему дублируется диалог? Если запустить меню, выбрать доход, ввести доход, закрыть диалог, закрыть ввод дохода, в меню выбрать доход, ввести...