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

Если других вариантов получить MIME-тип нет, то графические форматы содержат название формата в первых байтах файла.
...
Рейтинг: 0 / 0
Работа с изображениями
    #34058305
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackWallОк, спасибо. Еще вопрос - как получить тип содержимого (например image/jpeg), если в распоряжении имеется только поток байт?
http://schmidt.devlib.org/image-info/
...
Рейтинг: 0 / 0
Работа с изображениями
    #34058828
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В com.sun есть много классов для работы с изображениями
com.sun.image, спец потоки com.sun.media.imageio, Нкодеры, декодеры...
...
Рейтинг: 0 / 0
Работа с изображениями
    #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
Работа с изображениями
    #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
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с изображениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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