Вниз  Java-программирование (1-ые посты)
- 14.12.2012 / 20:23
Magatino
  Администратор

Magatino 
Сейчас: Offline
Andrey, А что тебе мешает придумать формулу и вставить в этот код? :dum:
- 14.12.2012 / 20:24
ckrocket
  Пользователь

ckrocket 
Сейчас: Offline
GIPERT, на твой пост (14.12.2012 / 20:10) отвечу, mp3 -
сжатый формат.
его лучше не использовать.
но если хочешь,
либо используй доп. либу, либо смотри структуру формата
- 15.12.2012 / 22:40
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
Всем привет :)
Вот хочу спросить или есть у кого-то код билинейной интерполяции
Тот что здесь (не UniFM) не совсем работает
При масштабировании картинки последние пиксели справа и снизу просто ищезают :-(

Бикубическая интерполяция хорошая, но очень медленая
- 16.12.2012 / 12:02
DominaN
  Пользователь

DominaN 
Сейчас: Offline
  1. public static Image resampleImage(Image img, int w2, int h2) {
  2.         int w = img.getWidth(), h = img.getHeight();
  3.  
  4.         if (w == w2 && h == h2) {
  5.             return img;
  6.         }
  7.  
  8.         int[] pixels = new int[w * h], temp = new int[w2 * h2];
  9.         img.getRGB(pixels, 0, w, 0, 0, w, h);
  10.  
  11.         int a, b, c, d, x, y, index;
  12.         float x_ratio = ((float) (w - 1)) / w2;
  13.         float y_ratio = ((float) (h - 1)) / h2;
  14.         float x_diff, y_diff, blue, red, green, alpha;
  15.         int offset = 0;
  16.         for (int i = 0; i < h2; i++) {
  17.             for (int j = 0; j < w2; j++) {
  18.                 x = (int) (x_ratio * j);
  19.                 y = (int) (y_ratio * i);
  20.                 x_diff = (x_ratio * j) - x;
  21.                 y_diff = (y_ratio * i) - y;
  22.                 index = (y * w + x);
  23.                 a = pixels[index];
  24.                 b = pixels[index + 1];
  25.                 c = pixels[index + w];
  26.                 d = pixels[index + w + 1];
  27.  
  28.                 alpha = ((a >> 24) & 0xff) * (1 - x_diff) * (1 - y_diff) + ((b >> 24) & 0xff) * (x_diff) * (1 - y_diff) + ((c >> 24) & 0xff) * (y_diff) * (1 - x_diff) + ((d >> 24) & 0xff) * (x_diff * y_diff);
  29.                 blue = (a & 0xff) * (1 - x_diff) * (1 - y_diff) + (b & 0xff) * (x_diff) * (1 - y_diff) + (c & 0xff) * (y_diff) * (1 - x_diff) + (d & 0xff) * (x_diff * y_diff);
  30.                 green = ((a >> 8) & 0xff) * (1 - x_diff) * (1 - y_diff) + ((b >> 8) & 0xff) * (x_diff) * (1 - y_diff) + ((c >> 8) & 0xff) * (y_diff) * (1 - x_diff) + ((d >> 8) & 0xff) * (x_diff * y_diff);
  31.                 red = ((a >> 16) & 0xff) * (1 - x_diff) * (1 - y_diff) + ((b >> 16) & 0xff) * (x_diff) * (1 - y_diff) + ((c >> 16) & 0xff) * (y_diff) * (1 - x_diff) + ((d >> 16) & 0xff) * (x_diff * y_diff);
  32.  
  33.                 temp[offset++] = ((int) blue) | (((int) green) << 8) | ((((int) red) << 16) | (((int) alpha) << 24));
  34.             }
  35.         }
  36.  
  37.         return Image.createRGBImage(temp, w2, h2, true);
  38.     }

- 20.12.2012 / 19:28
RooMeN
  Пользователь

RooMeN 
Сейчас: Offline
Как вращать точку по окружности по постоянному радиусу?
- 20.12.2012 / 20:09
myname
  Пользователь

myname 
Сейчас: Offline
RooMeN, на опререлённый угол? Или в зависимости от координаты x?
- 20.12.2012 / 20:17
ckrocket
  Пользователь

ckrocket 
Сейчас: Offline
RooMeN, формула:
  1. newX = x * cos ( theta ) - y * sin ( theta );
  2.  newY = y * cos ( theta ) + x * sin ( theta );


Изменено ckrocket (20.12 / 20:18) (всего 1 раз)
- 20.12.2012 / 21:44
RooMeN
  Пользователь

RooMeN 
Сейчас: Offline
ckrocket, спасибо:) а синус и косинус откуда загружать?:-D
- 20.12.2012 / 21:48
myname
  Пользователь

myname 
Сейчас: Offline
RooMeN, Math.sin
- 20.12.2012 / 21:50
myname
  Пользователь

myname 
Сейчас: Offline
RooMeN, не загружать, а импортировать.
import java.lang.Math;
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)