|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
initmax : 165 Новичок Откуда: Moon
|
Фев 12, 2011 20:00 |
|
|
Дано 2мерный массив интов содержащих 1 || 0 что является чернобелым изображением, каким образом посоветуете записать этот массив в BufferedImage?
изначльно я знаю размеры картинки и её тип "бинарное изоборажение"
вот таким образом создаю эту перименную
| Код: |
| BufferedImage imgResult = new BufferedImage(img.getWidth(),img.getHeight(), BufferedImage.TYPE_BYTE_BINARY); |
как в неё записать массив int [][] ? |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Фев 14, 2011 11:32 |
|
|
Имхо, проще просканировать и каждую точку проставить. Иначе - перегонять в одномерный массив int-ов, (черный - 0, белый - 0xFFFFFF), и потом через Tookit.createImage(ImageProducer) и java.awt.image.MemoryImageSource создавать Image, который пототм отрисовывать на BufferedImage. _________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
initmax : 165 Новичок Откуда: Moon
|
Фев 15, 2011 11:29 |
|
|
> Имхо, проще просканировать и каждую точку проставить
каким образом? |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Фев 15, 2011 12:20 |
|
|
|
|
|
|
 |
initmax : 165 Новичок Откуда: Moon
|
Фев 25, 2011 18:59 |
|
|
Всё перепробовал не выходит, дело в том что массив int[][] состоит из 1 || 0 т.е. хранит бинарное изображение, можно ли как-то его в BufferedImage чтобы получить чернобелое изображение?
> java.awt.image.MemoryImageSource
пользовать не могу, приложение под web
> Имхо, проще просканировать и каждую точку проставить
чем сканировать? |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Фев 28, 2011 10:44 |
|
|
| initmax писал(а): |
> java.awt.image.MemoryImageSource
пользовать не могу, приложение под web
|
С этого места и поподробнее. Я прекрасно использовал MemoryImageSource на сервере.
И давайте все-таки сформулируем изначальную задачу. Что есть, откуда, что надо сделать, куда отдать. _________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
initmax : 165 Новичок Откуда: Moon
|
Фев 28, 2011 23:33 |
|
|
есть такая вот функция
| Код: |
private int[][] applyFilterImage(ImageFilter imageFilter, BufferedImage img) {
imageFilter.loadSourceImg(img);
return imageFilter.filter(SysRes.CHAN_GRAYVAL);
} |
Она принимает переменную типизированного фильтра и картинку в видеBufferedImage. Возвращает двумерный массив интов.
именно этот самый массив динамической размерности который содержит только 1 || 0 необходимо преобразовать в картинку желательно в BufferedImage |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Мар 01, 2011 13:27 |
|
|
Господи, ну вроде всё разжевали уже...
Вариант со сканированием:
| Код: |
package ru.skipy.tests;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
/**
* MonochromeImageTest
*
* @author Eugene Matyushkin aka Skipy
* @since 01.03.2011
*/
public class MonochromeImageTest {
static int[][] data = new int[][]{
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}
};
public static void main(String[] args) throws Exception{
BufferedImage img = new BufferedImage(data[0].length, data.length, BufferedImage.TYPE_INT_RGB);
for(int y=0; y<data.length; y++){
for (int x=0; x<data[y].length; x++){
img.setRGB(x,y,(data[y][x] == 0) ? 0xFFFFFF : 0x000000);
}
}
ImageIO.write(img, "PNG", new FileOutputStream("./bitmap.png"));
}
}
|
_________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других!
Последний раз редактировалось: Skipy (Мар 01, 2011 13:52), всего редактировалось 1 раз |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Мар 01, 2011 13:52 |
|
|
Вариант с MemoryImageSource:
| Код: |
package ru.skipy.tests;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.MemoryImageSource;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* MonochromeImageTest
*
* @author Eugene Matyushkin aka Skipy
* @since 01.03.2011
*/
public class MonochromeImageTest {
static int[][] data = new int[][]{
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}
};
public static void main(String[] args) throws Exception {
int w = data[0].length;
int h = data.length;
int[] imgData = new int[w * h];
for (int i = 0; i < imgData.length; i++) {
imgData[i] = (1 - data[i / w][i % w]) * 0xFFFFFFFF;
}
MemoryImageSource mis = new MemoryImageSource(w, h, imgData, 0, w);
Image img = Toolkit.getDefaultToolkit().createImage(mis);
BufferedImage bimg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bimg.createGraphics();
while (!g.drawImage(img, 0, 0, null)) ;
ImageIO.write(bimg, "PNG", new FileOutputStream("./bitmap-mis.png"));
}
}
|
_________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
|
|
|