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

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

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


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

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

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

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

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

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


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

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



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

Из описания выше я думаю вы поняли, что до CDN нам далеко)))
...
Рейтинг: 0 / 0
04.12.2014, 08:13
    #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
04.12.2014, 08:32
    #38824447
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить трафик картинок между клиентом и сервером?
redwhite90,

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

На их гитхабе пишут, что есть проблемы с гифом. мы ведь должны будем как-то валидировать то, что пользователь присылает.
...
Рейтинг: 0 / 0
04.12.2014, 09:47
    #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
04.12.2014, 09:48
    #38824500
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить трафик картинок между клиентом и сервером?
GregTkredwhite90,

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


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

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

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



Это рабочий код.
...
Рейтинг: 0 / 0
04.12.2014, 10:25
    #38824554
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить трафик картинок между клиентом и сервером?
Я его сам где-то в инете нашёл когда у меня стояла задача подобная автору топика.(не знаю ,что там за магия но работает)
...
Рейтинг: 0 / 0
04.12.2014, 11:18
    #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
04.12.2014, 11:37
    #38824648
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить трафик картинок между клиентом и сервером?
...
Рейтинг: 0 / 0
05.12.2014, 04:14
    #38825657
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить трафик картинок между клиентом и сервером?
redwhite90,

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

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

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

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

150:150

и 300:400


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

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

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


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