Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема загрузки изображений большого размера файла / 25 сообщений из 26, страница 1 из 2
30.10.2012, 14:05
    #38018641
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Есть корпоративный сервис-сайт для сотрудников компании. Сервис анкет сотрудников, профилей. Каждый сотрудник имеет возможность загружать в свою анкету собственные фотографии. Проблема в том, что сотрудники никаких понятий о графических редакторах не знают и способны загружать на сервер огромные фотографии с большим размером исходного файла. С таким подходом никаких ресурсов жесткого диска не хватит для всего лишь 1000 анкет по 20-30 фотографий в каждой.

Вопрос.
1. Какие есть реализованные механизмы для среды ASP.NET в автоматическом сжатии графического файла?
2. Интересен также вариант интерактивного выбора определенного прямоугольного участка со всей фотографии как, например в ВКонтакте, или Скайп.
3. Любые интересные идеи и предложения приветствуются.

Спасибо всем, кто подскажет в какую сторону смотреть.
...
Рейтинг: 0 / 0
30.10.2012, 14:08
    #38018651
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Конечно, лучше это делать сразу на клиенте на Джиквери, или обычном ДжаваСкрипт. Помогите сие найти готовое, или полуготовое.
...
Рейтинг: 0 / 0
30.10.2012, 14:18
    #38018675
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolikКонечно, лучше это делать сразу на клиенте на Джиквери, или обычном ДжаваСкрипт. Помогите сие найти готовое, или полуготовое.
Невозможно. Вы, похоже, не совсем копенгаген насчёт браузеров и возможностей яваскрипта в браузера.
А на сервере - таки возможно и прелбразовывать и уменьшать-увеличивать.
Ну, передают большие фотки - да и фиг с ним. С данными Вы можете всё, что угодно делать.
...
Рейтинг: 0 / 0
30.10.2012, 14:38
    #38018722
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Ну согласен, что я не сильно то и понимаю что к чему.

Ну тогда, как же ВКонтакте vk.com при загрузке аватарки (личного фото) возможно курсором мыши двигать прямоугольную область по всей фотке и выбирать какая часть картинки будет отображаться в дальнейшем?

Догадываюсь, что скорее всего, речь идет не об обрезке файла, а о задании спецнастроек для div-а, в котором это изображение потом выводися в html на странице. Или даже не так. Ведь на сервере похоже все же сохранено полное изображение.

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

Если понятно, что я написал :) ?!
...
Рейтинг: 0 / 0
30.10.2012, 14:43
    #38018732
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolikВ общем, нам требуется во-первых урезать размер самого файла и, по возможности, предлагать интсрумент для реальной обрезки на клиенте. Псоледнее скорее всего реализуемо уже на сервере, но от клиента необходимо получить границы, по которым на сервере урежется файл.

Если понятно, что я написал :) ?!
Ну да, совершенно верно.
...
Рейтинг: 0 / 0
30.10.2012, 14:49
    #38018749
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
ShSerge, а не подскажете ссылочку неплохого поста об урезке граффайла на c# ?! Вы же всегда прямо в яблочко ссылки предлагаете!
...
Рейтинг: 0 / 0
30.10.2012, 14:51
    #38018758
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
http://odyniec.net/projects/imgareaselect/examples-callback.html

вот, кстати, откопал ресурс. С клиента я уже получу границы будущей обрезки, теперь вопрос остался как на сервере это реализовать?
...
Рейтинг: 0 / 0
30.10.2012, 15:05
    #38018788
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolik,
Вам перед тем как резать, надо сжать образ, ибо если клиент не захочет что то резать( а это вполне разумно) то ваш образ так и останется игромаднейшего размера, лежащим на диске.
...
Рейтинг: 0 / 0
30.10.2012, 15:12
    #38018807
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
выделение фрагмента образа, это така же доп опция как лупа, вставка логотипа, и т.д., она подразумевает что весь образ присутствует в первозданном виде на сервере, и если даже предположим что пользователь выбрал фрагмент и вы переписали
базовое фото на фрагмент, то вы его лишаете креатива,( вдруг завтра ему не понравится это фрагмент, и он решит что травку с лева надо бы тоже захватить) - а уже нет..., а если решит что выделять ничего не стоит , впрочем писал выше.
...
Рейтинг: 0 / 0
30.10.2012, 15:36
    #38018877
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Это все верно, что пользователь может захотеть изменить завтра фрагмент.

Но тут ничего не поделаешь, ведь хранить все изображение мы не можем, пока :)

Вот, что я предлагаю себе:

1. В форме загрузки очередного изображения пользователь выбирает исходный файл на своем компьютере;
2. Аяксом файл полностью заливается на хостинг и тут же отображается в этой же форме для возможности дальнейшей работы с этим изображением пользователя;
3. Пользователь тут же кропит изображение и нажимает кнопку "Сохранить";
4. На сервер улетают границы обрезки, пересохраняется изображение с новыми границами обрезки и
5. страница перезагружается, или перенаправляется на другую требуемую страницу.

Такой вариант, вроде ниче так. Я правильно все представляю себе, или есть аккие-то еще требуемые для такой цели шаги?

Спасибо за помощь!
...
Рейтинг: 0 / 0
30.10.2012, 15:36
    #38018879
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
кстати, на клиенте тоже можно образать, с помощью канвы. и ресайзить. потом передавать на сервер как base64
...
Рейтинг: 0 / 0
30.10.2012, 15:45
    #38018899
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Яростный Мечкстати, на клиенте тоже можно образать, с помощью канвы. и ресайзить. потом передавать на сервер как base64
Не во всех браузерах прокатит. :)
...
Рейтинг: 0 / 0
30.10.2012, 16:20
    #38018979
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Так по моему последнему посту, правильные мысли, или че где упущено, или делается сегодня не так?
...
Рейтинг: 0 / 0
30.10.2012, 17:17
    #38019100
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolik,
дак не проще ли на сервере при загрузке, сжать фото до приемлемых размеров, и всё ..................
...
Рейтинг: 0 / 0
30.10.2012, 18:24
    #38019214
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Где-то в степи, так в том то и вопрос, что хотелось бы пользователю самому выбрать какую часть изображения отдать для заливки на сервер, если всё изображение слишком велико для этого.

А вот вопрос дальнейшего сжатия размера самого файла - это, конечно, уже сделает выполняемый код на сервере.

Я понимаю, что высказываю неоднозначные задачи, но еще раз повторю:

проблема в том, что место на сервере надо экономить и как то решать проблему нежелания/неумения пользователей заботиться об этом.

Посему я со своим малюсеньким опытом вижу два пути, дополняющих друг-друга:
1. Дать пользователю инструмент на клиенте для обрезки картинки изображения (это первый шаг уменьшения веса файла);
2. Сжимать сам файл уже обрезанного изображения на сервере.

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

Я правильно мыслю, или сейчас всё это дело решается как-то иначе?

Пожалуйста, подскажите туда ли я смотрю вообще.
...
Рейтинг: 0 / 0
30.10.2012, 18:33
    #38019225
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
И еще один вопрос по ходу дела.

Когда в фотошопе мы сохраняем для веб графику, то можем настраивать процент сжатия качества и тут же визуально анализировать насколько ухудшилось качество графики. А есть ли программный способ определять допустимый (что ли) процент сжатия качества файла? Ведь для разных файлов потребуется допустим различный процент сжатия при сохранении визуального качества.
...
Рейтинг: 0 / 0
30.10.2012, 18:48
    #38019249
Gatman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolikпроблема в том, что место на сервере надо экономить и как то решать проблему нежелания/неумения пользователей заботиться об этом.Если доступ в инет открыт, как вариант - хранить на каком-нибудь хостинге картинок. Или в сервисе вроде dropbox - там нахаляву сразу 2 гига дают, у некоторых другиг сервисов и больше дают бесплатно
...
Рейтинг: 0 / 0
30.10.2012, 19:06
    #38019272
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolik,
у вас не хватает места - сжимайте фото при сохранении, причем тут выделение фрагмента, дотнет этим располагает, примеров в сети куча, как тут коррелирует опция выделение фрагмента, я не могу понять, есть тип фотографий, как портретная, я что там должен выделить для показа ухо ( пауза) или глаз?, а если я захочу всю композитную фотографию вставить в слайдер, у вас она так и будет болтаться без выделения на сервере размером с гиг.
Вы исходите всегда от пользователя, а не от программиста, если пользователь не может сделать -Сохранить для Web, сделайте это за него, а потом подсовывайте ему всякие фишки для работы с образами..
...
Рейтинг: 0 / 0
30.10.2012, 19:11
    #38019285
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
если у вас не хватает места, расширьте свой хост, за счет сторонних хостов, например стандартный хост на один гб, не лимитирует
размеры базы данных, можете впихнуть туда хоть терабайт, и хранить фото там.. ( 1300 в год, я думаю фирма не обеднеет.)
...
Рейтинг: 0 / 0
30.10.2012, 20:49
    #38019348
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolikКогда в фотошопе мы сохраняем для веб графику, то можем настраивать процент сжатия качества и тут же визуально анализировать насколько ухудшилось качество графики. А есть ли программный способ определять допустимый (что ли) процент сжатия качества файла? Ведь для разных файлов потребуется допустим различный процент сжатия при сохранении визуального качества.

Такое использую для сжатия.
EncoderParameter Class

Так менять размер.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
   var newImage = new Bitmap(NewWidth, NewHeight);
            using (var G = Graphics.FromImage(newImage))
            {
                G.CompositingQuality = CompositingQuality.HighQuality;
                G.InterpolationMode = InterpolationMode.HighQualityBicubic;
                G.SmoothingMode = SmoothingMode.HighQuality;

                G.DrawImage(imgInput, 0, 0, NewWidth, NewHeight);
            }



Обрезать.
Код: c#
1.
2.
Rectangle rect = new Rectangle(cropX, cropY, cropWidth, cropHeight);
Bitmap cropped = bitmap.Clone(rect, bitmap.PixelFormat);
...
Рейтинг: 0 / 0
30.10.2012, 21:46
    #38019384
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolikникаких ресурсов жесткого диска не хватит для всего лишь 1000 анкет по 20-30 фотографий в каждой.

30 * 1000 * 10Мб = 300Гб

И это «проблема»? (хотя фото 10Мб надо еще поискать)
...
Рейтинг: 0 / 0
30.10.2012, 23:42
    #38019447
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Ну, в общем понятно, что зря порим горячку.

А за пример кода отдельное СПАСИБО.
...
Рейтинг: 0 / 0
31.10.2012, 12:34
    #38019916
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Яростный Мечкстати, на клиенте тоже можно образать, с помощью канвы. и ресайзить. потом передавать на сервер как base64

Во время клиентского ресайза успеваю за кофе сходить, но возможность конечно хорошая, чтобы лишний трафик на сервер не гонять.
...
Рейтинг: 0 / 0
02.11.2012, 21:52
    #38024089
avolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
Слушайте, уважаемые завсегдатаи форума. Еще один вопросик.

Ситуация.

Есть у нас html-тег
Код: html
1.
<img src="..." />

И таких тегов, к примеру 3 ряда по 4 шт в каждом. Получается вывод в три ряда до4 изображения небольшого размера, к примеру 120/120 px.

Получается, что задав атрибуты тега width и height возможно на клиенте в браузере просто уменьшать размер реального изображения под требуемый.

Получится что-то вроде (разметка чисто для примера, не пугайтесь):
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<table>
<tr>
<td>
<img id="1" src="..." width="120px" /> <img id="2" src="..." width="120px" /> <img id="3" src="..." width="120px" /> <img id="4" src="..." width="120px" />
</td>
<td>
<img id="5" src="..." width="120px" /> <img id="6" src="..." width="120px" /> <img id="7" src="..." width="120px" /> <img id="8" src="..." width="120px" />
</td>
<td>
<img id="9" src="..." width="120px" /> <img id="10" src="..." width="120px" />
</td>
</tr>
</table>



Это всё хорошо, когда изображения квадратные и указание одного лишь атрибута width даст требуемое пропорциональное уменьшение на экране. Также этот способ хорошо сработает когда все изображения имеют одинаковые исходные размеры, пускай не квадратные, но прямоугольные. Но все одинаковые.

А что когда каждая картинка имеет свою сторону прямоугольника размера? Что когда одна картинка посредством задания атрибута width="120px" получит высоту 40 px, другая рядом 190 px, третья - 10 px ?!

В итоге все некрасиво будет смотреться в отношении выравнивания по высоте/ширине.

Можно, конечно, настраивать атрибут height и получать отличное выравнивание по высоте, но всё же ширина будет сильно отличаться каждой картинки.

Вот как бы реализовать способ уменьшения так, что бы програмно определять какой атрибут (width или height) предпочтительнее задать для конкретной картинки?
...
Рейтинг: 0 / 0
02.11.2012, 22:20
    #38024105
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема загрузки изображений большого размера файла
avolik,
что мешает изменить пропорционально размер картинки, по окончанию загрузки документа, под свои нужды прямо на клиенте JS,
или на сервере?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема загрузки изображений большого размера файла / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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