Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
#1

Bitmap, resize - Android

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

При ресайзе bitmap теряет "резкость" по контуру изображения, появляется пикселизация. Есть способы обойти это?
Ресайзю bitmap путем изменения координат rect'a.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 01:10     Bitmap, resize
Посмотрите здесь:

Поворот Bitmap изображения Android
Android создание Bitmap
Android Отличия drawable от Bitmap
Android Bitmap & BitmapFactory
Bitmap трансформация Android
Неверный размер Bitmap'a Android
Android Как правильно работать с BITMAP?
Android Очистка памяти Bitmap
Android Сохранение Bitmap в галерею
RelativeLayout и Bitmap Android
Android Не создаёт Bitmap из ресурса
Для чего делать Resize при использовании Picasso Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
verylazy
Заблокирован
24.09.2013, 09:32     Bitmap, resize #2
ресайз это кроп или масштабирование?
если масштабирование то можно так bitmap = Bitmap.createBitmap(source, x, y, width, height);
но мне кажется, что все таки нужен был кроп
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
24.09.2013, 09:50  [ТС]     Bitmap, resize #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);
        }
verylazy
Заблокирован
24.09.2013, 10:07     Bitmap, resize #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
я конечно новичек и часто сильно буксую (как и сейчас?), но ведь не проблема в твой метод вставить строки что я выше привел, с переделкой естественно

хотя, я тут подумал....правильно было бы, наверное, все эти масштабирования проводить над оригинальной картинкой и результат сохранять отдельно, иначе после пары изменений размеров будет импрессионизм на битмапе
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
24.09.2013, 10:40  [ТС]     Bitmap, resize #5
Приведенный код выше масштабирует изображение не касаясь изображения напрямую всякими грязными фильтрами, я не думаю что дополнительные декодирования изображения будут давать лучшее качество.
Yandex
Объявления
24.09.2013, 10:40     Bitmap, resize
Ответ Создать тему
Опции темы

Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru