Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
1

Bitmap, resize

24.09.2013, 01:10. Показов 2589. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При ресайзе bitmap теряет "резкость" по контуру изображения, появляется пикселизация. Есть способы обойти это?
Ресайзю bitmap путем изменения координат rect'a.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2013, 01:10
Ответы с готовыми решениями:

Для чего делать Resize при использовании Picasso
Почему нужно иногда использовать resize() когда загружаешь изображения при помощи Picasso? Почему...

создание Bitmap
столкнулся с такой проблемой: есть в drawable imge.jpg , делаю в классе class MClass extends...

RelativeLayout и Bitmap
Можно ли поставить на задний фон RelativeLayout Bitmap. Или преобразовать Bitmap в Drawable? P.S....

Bitmap трансформация
Здрасте) Как можно трансформировать bitmap? Т.е. у меня есть картинка, которую я загружаю, и мне...

4
Заблокирован
24.09.2013, 09:32 2
ресайз это кроп или масштабирование?
если масштабирование то можно так bitmap = Bitmap.createBitmap(source, x, y, width, height);
но мне кажется, что все таки нужен был кроп
0
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
24.09.2013, 09:50  [ТС] 3
кастомное вью, наследуется от imageview, его ресайзю по пинчу. ресайзю следующим образом:


mScaledImageWidth и mScaledImageHeight получаю следующим образом:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int positionX = (int) event.getRawX();
        int positionY = (int) event.getRawY();
 
        switch (event.getAction() & MotionEvent.ACTION_MASK) {
             // many code
            case MotionEvent.ACTION_POINTER_DOWN:
                movingDist = spacing(event);
                if (movingDist > stdDist) {
                    MODE = ZOOM;
                }
                break;
            case MotionEvent.ACTION_MOVE:
               if (MODE == ZOOM) {
                  float newMovingDist = spacing(event);
                  if (newMovingDist > stdDist) {
                       mScaledImageHeight = (int) (newMovingDist / movingDist * mImageHeight);
                       mScaledImageWidth = (int) (newMovingDist / movingDist * mImageWidth);
 
                       scaleImage();
                  }
         }
 
        mImagePosition = new Rect(startXPosition, startYPosition, mImageWidth, mImageHeight); // на начальном этапе
 
       public void scaleImage() {
            if (mScaledImageWidth == 0 && mScaledImageHeight == 0) {
                mImagePosition.right = mImagePosition.left + mImageWidth;
                mImagePosition.bottom = mImagePosition.top + mImageHeight;
            } else {
                mImagePosition.right = mImagePosition.left + mScaledImageWidth;
                mImagePosition.bottom = mImagePosition.top + mScaledImageHeight;
            }
            mImageRegion.set(mImagePosition);
        }
0
Заблокирован
24.09.2013, 10:07 4
только что проверил, картинка масштабируется
Java
1
2
3
4
ImageView arni = (ImageView) findViewById(R.id.imageView1);
Bitmap bitmap = ((BitmapDrawable) arni.getDrawable()).getBitmap();
bitmap = Bitmap.createScaledBitmap(bitmap, 500, 200, false);
arni.setImageBitmap(bitmap);
можно ведь брать размеры и подставлять вместо чисел, как у меня
мне кажется неважным что там от чего наследуется, масштабируется ведь bitmap
я конечно новичек и часто сильно буксую (как и сейчас?), но ведь не проблема в твой метод вставить строки что я выше привел, с переделкой естественно

хотя, я тут подумал....правильно было бы, наверное, все эти масштабирования проводить над оригинальной картинкой и результат сохранять отдельно, иначе после пары изменений размеров будет импрессионизм на битмапе
0
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
24.09.2013, 10:40  [ТС] 5
Приведенный код выше масштабирует изображение не касаясь изображения напрямую всякими грязными фильтрами, я не думаю что дополнительные декодирования изображения будут давать лучшее качество.
0
24.09.2013, 10:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2013, 10:40
Помогаю со студенческими работами здесь

Отличия drawable от Bitmap
Чем отличается drawable от Bitmap?

Bitmap & BitmapFactory
Вопрос к бывалым. У меня в метод передается параметр Byte data и дальше я из этого массива байт...

Неверный размер Bitmap'a
Всем привет! Загружаю картинку размером 1920х1080: bmp =...

Bitmap отразить по горизонтали
Bitmap giv1=BitmapFactory.decodeResource(getContext().getResources(),R.drawable.sobaka); ???


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru