powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как уменьшить трафик картинок между клиентом и сервером?
25 сообщений из 36, страница 1 из 2
Как уменьшить трафик картинок между клиентом и сервером?
    #38824285
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заметили, что между клиентом и сервером очень большой трафик.

Хотим сделать, чтобы изначально загружалась превьюшка, а потом уже по нажатии(если юзер захочет) то появлялась оригинальная картинка.

Погуглив не нашёл никакой либы, которая умеет сжимать картинки любого расширения.


Подскажите куда копать - ограничивать полльзователей одним форматом картинок или всё таки есть тулзня для таких целей?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824287
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Погуглив не нашёл никакой либы, которая умеет сжимать картинки любого расширенияФорматы, типично используемые для "изображения в вебе" уже упаковали данные.
Может, вы ищите утилиту, которая в пакетном режиме построит уменьшенное изображение из исходного?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824289
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Погуглив не нашёл никакой либы, которая умеет сжимать картинки любого расширенияФорматы, типично используемые для "изображения в вебе" уже упаковали данные.
Может, вы ищите утилиту, которая в пакетном режиме построит уменьшенное изображение из исходного?

мне надо будет как-то ограничить пользователя форматом? сказать например что jpg и png допустимы, а остальные нет.

Не совсем понял вторую фразу. можете пояснить что значит пакетный режим?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824298
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как не нашел?
Вот:
http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/

А что является проблемой - траффик или быстродействие сайта?
Если быстродействие, то можно заюзать плагин, подгружающий картинки по мере прокрутки вниз, когда они появляются в видимой области. Вконтакте так работает, например.

Если именно исходящий траффик - то, возможно, ваш сайт дорос до CDN :-)
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824302
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90мне надо будет как-то ограничить пользователя форматом? сказать например что jpg и png допустимы, а остальные нет.Из непакованных форматов, для изображений, кроме BMP ничего на ум не приходит.
Есть изображения, которые не могут быть маленького размера. Полноцветный скан замусоленной страницы, например.Не совсем понял вторую фразу. можете пояснить что значит пакетный режим?Я просто не очень понял проблему.
Если изображения на вашей стороне - то их оптимизация может быть сделана разными способами. Но, как правило, наилучшие результаты даёт индивидуальный подход. Что плохо стыкуется с "какой-нибудь библиотекой".
Если изображения на стороне пользователя, то каждый сам себе злобный Буратино.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824313
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90мне надо будет как-то ограничить пользователя форматом? сказать например что jpg и png допустимы, а остальные нет.Из непакованных форматов, для изображений, кроме BMP ничего на ум не приходит.
Есть изображения, которые не могут быть маленького размера. Полноцветный скан замусоленной страницы, например.Не совсем понял вторую фразу. можете пояснить что значит пакетный режим?Я просто не очень понял проблему.
Если изображения на вашей стороне - то их оптимизация может быть сделана разными способами. Но, как правило, наилучшие результаты даёт индивидуальный подход. Что плохо стыкуется с "какой-нибудь библиотекой".
Если изображения на стороне пользователя, то каждый сам себе злобный Буратино.

Можете чего-нить предложить?


Объясню слегка проблему. Написали приложение небольшое, купили немного мощности на сервере. Как известно там есть лиимт трафика. Пользователь может загрузить любую картингу - хоть 500 мб. другое дело, что она в 99 процентов случаев показывается в малюсеньком квадратике. И получается, что трафик от сервера к клиенту идёт бесполезный. Хотелось бы, чтобы изначально картинка шла в уменьшенном формате. А если пользователь хочет целиком ее посмотреть, то пусть тыкнет и мы на сервере запросим только её.

я видел у себя в телефоне что-то подобное. есть папка где хранятся фотки, а есть где такие же фотки, что малюсенькие и весят совсем ничего.



scf - спасибо за ссылку - почитаю

Из описания выше я думаю вы поняли, что до CDN нам далеко)))
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824433
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я такой код использовал

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public static BufferedImage resizeImage(BufferedImage originalImage, int type,       
                                            int IMG_WIDTH ,
                    int IMG_HEIGHT){
     //       int IMG_WIDTH = 30;
                //    int IMG_HEIGHT = 30;
            BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
            Graphics2D g = resizedImage.createGraphics();
            g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
            g.dispose();
            
            g.setComposite(AlphaComposite.Src);
             
                    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                    RenderingHints.VALUE_INTERPOLATION_BILINEAR);
                    g.setRenderingHint(RenderingHints.KEY_RENDERING,
                    RenderingHints.VALUE_RENDER_QUALITY);
                    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
            
     
            return resizedImage;
        }
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824447
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

Для хранения картинок подойдёт Amazon S3(первый год бесплатно с оговорками), а для превью просто храните уменьшенное приложение. У нас это работает. Думаю у вас такой подход тоже с работает.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824497
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scf,
а никак не могу найти какие форматы поддерживает imagescr.

На их гитхабе пишут, что есть проблемы с гифом. мы ведь должны будем как-то валидировать то, что пользователь присылает.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824499
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
irbis_alя такой код использовал

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public static BufferedImage resizeImage(BufferedImage originalImage, int type,       
                                            int IMG_WIDTH ,
                    int IMG_HEIGHT){
     //       int IMG_WIDTH = 30;
                //    int IMG_HEIGHT = 30;
            BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
            Graphics2D g = resizedImage.createGraphics();
            g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
            g.dispose();
            
            g.setComposite(AlphaComposite.Src);
             
                    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                    RenderingHints.VALUE_INTERPOLATION_BILINEAR);
                    g.setRenderingHint(RenderingHints.KEY_RENDERING,
                    RenderingHints.VALUE_RENDER_QUALITY);
                    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
            
     
            return resizedImage;
        }



все классы из JDK?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824500
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GregTkredwhite90,

Для хранения картинок подойдёт Amazon S3(первый год бесплатно с оговорками), а для превью просто храните уменьшенное приложение. У нас это работает. Думаю у вас такой подход тоже с работает.


А как с форматами быть? Amazon S3 все поддерживает?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824515
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересный код предлагают: ))
Код: java
1.
2.
3.
4.
            g.dispose();
            // и потом еще кучу всего с этим Graphics2D делают:
            g.setComposite(AlphaComposite.Src); 
...
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824533
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

да любой. эта библиотека работает с изображением как массивом точек, позволяя делать качественный ресайз.
Загрузка и сохранение различных форматов изображений зашита в саму яву.
Вот список поддерживаемых форматов:
https://docs.oracle.com/javase/7/docs/api/javax/imageio/package-summary.html

Должно хватить я думаю.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824551
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraИнтересный код предлагают: ))
Код: java
1.
2.
3.
4.
            g.dispose();
            // и потом еще кучу всего с этим Graphics2D делают:
            g.setComposite(AlphaComposite.Src); 
...



Это рабочий код.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824554
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я его сам где-то в инете нашёл когда у меня стояла задача подобная автору топика.(не знаю ,что там за магия но работает)
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824616
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfredwhite90,

да любой. эта библиотека работает с изображением как массивом точек, позволяя делать качественный ресайз.
Загрузка и сохранение различных форматов изображений зашита в саму яву.
Вот список поддерживаемых форматов:
https://docs.oracle.com/javase/7/docs/api/javax/imageio/package-summary.html

Должно хватить я думаю.

Спасибо, класс.

Вот ещё подобную нашёл от гугла.

https://code.google.com/p/thumbnailator/

тут вроде API ещё проще)

Интересно что лучше.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38824648
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38825657
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

Amazon S3 просто хранилище с доступом по http ему не важно что хранить. Просто в вашем случае не будет затрат на трафик, так как весь траф с изображениями будет на S3.

А вот проблему с ресайзом вам всё равно решать... тут сложно что-то подсказать я брал ImageIO и делал через него. Поддерживаю только jpeg.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38828683
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я тут подумал а как обычно весь это процесс происходит? (допустим я выбрал вариант хранить картинки у себя)

у меня есть картинка произвольного размера, который может загрузить пользователь.

Допустим мне надо хранить в 2-ух форматах:

150:150

и 300:400


Что делать если пользовательно загрузил картинку 80:500 например?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38828704
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90, можешь дать ссылку на свой сайт?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38828707
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Что делать если пользовательно загрузил картинку 80:500 например?
Придумайте бизнес-требования к моему сайту? Ну, как бы, вариантов не много.
Запретить.
Масштабировать пропорционально с искажением.
Масштабировать с обрезанием лишнего.
Масштабировать с "умным" фильтром, который откидываем малозначимое.

Java тут при чем?
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38828734
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,
обычно наиболее аккуратно выглядит пропорциональное масштабирование по большему краю: задаем, допустим max 100 пикселей, вычисляем коэффициент по наибольшей стороне, уменьшаем.
Еще есть интересная технология отрезания несущественного: пропорции снимка изменяются, но при этом не изменяются попорции изображенных предметов. Сжатие происходит за счет выкидывания малосущественного. Искать по ключевым словам Seam Carving
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38828738
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ворчалка пот катом... Можно не читать.

Когда уже этот чортов J2k заимплементят в браузеры? Достало
блин... машстабирование. Проблема тысячелетия. Сколько мегатонн
навоза вкинули в вентиляторы в срачах. И сколько киловатт-часов
на серверах сожгли.
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38828759
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как уменьшить трафик картинок между клиентом и сервером?
    #38829092
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кеширование, ресайз, ленивая загрузка картинок
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как уменьшить трафик картинок между клиентом и сервером?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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