Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с изображениями / 8 сообщений из 8, страница 1 из 1
13.10.2006, 20:18:20
    #34054747
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
Есть изображение в формате JPEG или PNG. Каким образом можно выполнить его масштабирование (в реале уменьшение), на какие классы смотреть?
Заранее спасибо
...
Рейтинг: 0 / 0
13.10.2006, 20:25:55
    #34054755
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
http://www.sql.ru/forum/actualthread.aspx?tid=268910
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
16.10.2006, 17:59:58
    #34058152
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
Ок, спасибо. Еще вопрос - как получить тип содержимого (например image/jpeg), если в распоряжении имеется только поток байт?
...
Рейтинг: 0 / 0
16.10.2006, 18:23:11
    #34058245
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
А откуда Вы получаете изображение?

Если других вариантов получить MIME-тип нет, то графические форматы содержат название формата в первых байтах файла.
...
Рейтинг: 0 / 0
16.10.2006, 18:41:55
    #34058305
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
BlackWallОк, спасибо. Еще вопрос - как получить тип содержимого (например image/jpeg), если в распоряжении имеется только поток байт?
http://schmidt.devlib.org/image-info/
...
Рейтинг: 0 / 0
17.10.2006, 04:20:08
    #34058828
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
В com.sun есть много классов для работы с изображениями
com.sun.image, спец потоки com.sun.media.imageio, Нкодеры, декодеры...
...
Рейтинг: 0 / 0
17.10.2006, 13:48:28
    #34060060
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
Плод изысканий

Код: plaintext
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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
 public   class  ImageTest {
     private   static   final   int  THUMB_WIDTH =  320 ;
     private   static   final   int  THUMB_HEIGHT =  200 ;
     private   static   final   int  QUALITY =  100 ;

     public   static   void  main(String args[])  throws  IOException, InterruptedException {
         byte  bytes[] =  new  ImageTest().makeThumbnail(ImageTest. class .getResource("me.jpg"));

        OutputStream output =  new  BufferedOutputStream( new  FileOutputStream("image.jpg"));
         try  {
            output.write(bytes);
        }  finally  {
            output.close();
        }
    }

     public   byte [] makeThumbnail(URL url)  throws  IOException, InterruptedException {
         return  makeThumbnail(Toolkit.getDefaultToolkit().getImage(url));
    }

     public   byte [] makeThumbnail(InputStream input)  throws  IOException, InterruptedException {
        ByteArrayOutputStream output =  new  ByteArrayOutputStream();

         byte  bytes[] =  new   byte [ 1024 ];
         int  c;
         while  ((c = input.read(bytes)) != - 1 ) {
            output.write(bytes,  0 , c);
        }

         return  makeThumbnail(output.toByteArray());
    }

     public   byte [] makeThumbnail( byte  imgBytes[])  throws  IOException, InterruptedException {
        ImageIcon iconFull =  new  ImageIcon(imgBytes);
         return  makeThumbnail(iconFull.getImage());
    }

     private   byte [] makeThumbnail(Image image)  throws  IOException, InterruptedException {
         long  startAt = System.currentTimeMillis();

        MediaTracker mediaTracker =  new  MediaTracker( new  Container());
        mediaTracker.addImage(image,  0 );
        mediaTracker.waitForID( 0 );

        // determine thumbnail size from width and height
         int  imageWidth = image.getWidth( null );
         int  imageHeight = image.getHeight( null );

         double  widthScale = ( double ) imageWidth / THUMB_WIDTH;
         double  heightScale = ( double ) imageHeight / THUMB_HEIGHT;
         double  scale = (widthScale > heightScale) ? widthScale : heightScale;

         int  width = ( int ) (imageWidth / scale);
         int  height = ( int ) (imageHeight / scale);

        // draw original image to thumbnail image object and scale it to the new size on-the-fly
        BufferedImage thumbImage =  new  BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics2D = thumbImage.createGraphics();
        graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        graphics2D.drawImage(image,  0 ,  0 , width, height,  null );

        // save thumbnail image to OUTFILE
        ByteArrayOutputStream output =  new  ByteArrayOutputStream();
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);

        param.setQuality(( float ) QUALITY /  100 , false);
        encoder.setJPEGEncodeParam(param);
        encoder.encode(thumbImage);

        System.out.println(System.currentTimeMillis() - startAt);

         return  output.toByteArray();
    }
}
...
Рейтинг: 0 / 0
19.10.2006, 17:47:48
    #34067644
BlackWall
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с изображениями
Еще немного кода для поддержки PNG
Код: plaintext
1.
2.
3.
4.
5.
6.
            ImageWriter imageWriter =  new  PNGImageWriter( new  PNGImageWriterSpi());
            ImageOutputStream imageOutput =  new  FileCacheImageOutputStream(output,  null );

            imageWriter.setOutput(imageOutput);
            imageWriter.write(image);
            imageOutput.flush();
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с изображениями / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]