Добро пожаловать, Гость
Узнать ширину картинки из медиабиблиотеки
Genry Offline
#1 Оставлено : 22 ноября 2013 г. 18:39:25(UTC)

Ранг: Newbie

Группы: Registered
Зарегистрирован: 16.10.2013(UTC)
Сообщений: 9
Откуда: Беларусь

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 5 раз в 3 постах
Приветствую!

Картинки лежат в медиабиблиотеке и вычитываются через @foreach(var file in ContentHelper.SplitMultiFiles(ViewBag.Project.pictures))
Я делаю ресайз картинки таким образом : @Url.FrontUrl().ResizeImageUrl(file,0,imageH)
Т.е. жестко задана высота, а ширина вычисляется пропорционально.
Как можно узнать ширину получившейся картинки ?
Пока что-то ничего подходящего в хэлп-файле по kooboo я не нашел.

Спасибо!
Ella Offline
#2 Оставлено : 22 ноября 2013 г. 23:10:30(UTC)

Ранг: Advanced Member

Группы: Registered, Тестеры
Зарегистрирован: 07.05.2012(UTC)
Сообщений: 241
Откуда: Россия

Сказал(а) «Спасибо»: 25 раз
Поблагодарили: 67 раз в 61 постах
Не сталкивалась с подобной задачей, на офф.форуме тоже не встречала.
Не думаю, что есть какое-то стандартное решение (могу ошибаться), хотя можно у разработчиков на их форуме спросить и если решения нет, они могут его сделать.
Как вариант - вычислить ширину самому по заданной пропорции...
Genry Offline
#3 Оставлено : 23 ноября 2013 г. 8:27:54(UTC)

Ранг: Newbie

Группы: Registered
Зарегистрирован: 16.10.2013(UTC)
Сообщений: 9
Откуда: Беларусь

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 5 раз в 3 постах
Ella написал:
Как вариант - вычислить ширину самому по заданной пропорции...


Такой вариант не подходит, т.к. картинки имеют разные пропорции.
Можно конечно на стороне браузера что-то нашаманить скриптом, но хочется всё же нагрузить сервер.
Ella Offline
#4 Оставлено : 3 декабря 2013 г. 9:52:39(UTC)

Ранг: Advanced Member

Группы: Registered, Тестеры
Зарегистрирован: 07.05.2012(UTC)
Сообщений: 241
Откуда: Россия

Сказал(а) «Спасибо»: 25 раз
Поблагодарили: 67 раз в 61 постах
http://forum.kooboo.com/...ageUrl---get-width.aspx
Jifeng говорит, что ширину они получают согласно пропорциям (это и так было понятно), а вот как получить эту ширину из функции не сказал, значит такое значение видимо никак не возвращается.
Genry Offline
#5 Оставлено : 3 декабря 2013 г. 14:07:05(UTC)

Ранг: Newbie

Группы: Registered
Зарегистрирован: 16.10.2013(UTC)
Сообщений: 9
Откуда: Беларусь

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 5 раз в 3 постах
Путем копания и проб удалось таки решить эту задачу на сервере.
Вот как это вышло
(imageH - у меня константа )

@foreach(var file in ContentHelper.SplitMultiFiles(ViewBag.Project.pictures))
{
var curImg = System.Drawing.Image.FromFile(Server.MapPath(Server.UrlDecode(file)));
var imageW = imageH*curImg.Width/curImg.Height;
<img src="@Url.FrontUrl().ResizeImageUrl(file,0,imageH)" width="@imageW" height="@imageH" alt=""/>
}


правда были мелкие затыки...
1-й - file содержит относительный путь файла в медиабиблиотеке (относительно корня сайта); добавил Server.MapPath
2-й - в относительном пути у меня папки названы кирилицей; добавил Server.UrlDecode
3-й - почему то при делении curImg.Width/curImg.Height в переменную всегда попадает целое число, а нужен дробный коэффициент; поэтому так curImg.Width/curImg.Height*imageH не получилось (в результате или 1 или 0), пришлось переписать выражение так, чтобы сперва было умножение а потом деление.
в обчем - победил :)
2 пользователей поблагодарили Genry за этот пост.
Ella оставлено 03.12.2013(UTC), nEkto оставлено 06.12.2013(UTC)
Ella Offline
#6 Оставлено : 3 декабря 2013 г. 14:30:45(UTC)

Ранг: Advanced Member

Группы: Registered, Тестеры
Зарегистрирован: 07.05.2012(UTC)
Сообщений: 241
Откуда: Россия

Сказал(а) «Спасибо»: 25 раз
Поблагодарили: 67 раз в 61 постах
Так и пришлось вручную высчитывать :) В принципе неплохое решение получилось.

Цитата:
почему то при делении curImg.Width/curImg.Height в переменную всегда попадает целое число, а нужен дробный коэффициент

При делении целого на целое будет целое. Можно предварительно преобразовать curImg.Width и curImg.Height в double, тогда должно нормально делиться.
Genry Offline
#7 Оставлено : 3 декабря 2013 г. 14:57:57(UTC)

Ранг: Newbie

Группы: Registered
Зарегистрирован: 16.10.2013(UTC)
Сообщений: 9
Откуда: Беларусь

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 5 раз в 3 постах
Ella написал:
При делении целого на целое будет целое.

Для меня это было в диковину ))
Во многих языках при делении как правило получается дробное число, а не целое, и приходится приводить к целому, а тут...
Видимо это из-за объявления переменной через var без типа. Хотя в JavaScript аналогично, но при делении получаем дробное.
Потом, при случае, поэкспериментирую с типами :)
nEkto Offline
#8 Оставлено : 6 декабря 2013 г. 23:16:26(UTC)
Ранг: Advanced Member

Группы: Registered
Зарегистрирован: 12.09.2013(UTC)
Сообщений: 63
Мужчина

Сказал(а) «Спасибо»: 30 раз
Поблагодарили: 8 раз в 5 постах
Genry и Ella Во первых здравствуйте , друзья ! Проблема картинок в Кубу эт конечно..................... без слов.... Что лично я заметил , это некий "максимализм" темплетезззз от создателей )))) Как мои наблюдения показали ... они определяют и позицию картинки и размеров файле CSS... В принципе это сравнительно не сложно, но новичку ..... Будет неуютно...)))) Вот пример покажу оригинал- http://sites.kooboo.com/dev~87RJUEWF7C23APYL# заходим в About, картинка в право и жесткие размеры.... Вот что сейчас сделала моя жена http://lero14.ru/# . Все редактировалось , только через CSS

Р\С А новый текстовый редактор , эт просто ужОссссссссс.... Пытаюсь вернуть из предыдущей версии, но пока ....................... 00000
Genry Offline
#9 Оставлено : 7 декабря 2013 г. 8:49:27(UTC)

Ранг: Newbie

Группы: Registered
Зарегистрирован: 16.10.2013(UTC)
Сообщений: 9
Откуда: Беларусь

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 5 раз в 3 постах
И тебе здравия, nEkto!
nEkto написал:
Как мои наблюдения показали ... они определяют и позицию картинки и размеров файле CSS...

CSS - это основной и активно продвигаемый принцип оформления страниц. Сама страница - это текст, тематические картинки, видео. Далее оформление только через css. Может это и правильно, но для такого подхода нужен грамотно разработанный CMS движок. Пока же большинство движков работают по старинке, иногда включая стили прямо в теги.
Посмотри это http://www.mezzoblue.com/zengarden/alldesigns/. Это набор оформления страниц на 100% через CSS. Натуральная магия! ))) Страница одна и та же, а всё меняется только сменой файла стилей.
1 пользователь поблагодарил Genry за этот пост.
nEkto оставлено 07.12.2013(UTC)
nEkto Offline
#10 Оставлено : 7 декабря 2013 г. 10:56:05(UTC)
Ранг: Advanced Member

Группы: Registered
Зарегистрирован: 12.09.2013(UTC)
Сообщений: 63
Мужчина

Сказал(а) «Спасибо»: 30 раз
Поблагодарили: 8 раз в 5 постах
Впечатляет 100%... У меня у жены проблема .. На вот http://lero14.ru/# не отображается прокрутка и флэшь на Эплах(Айподах и Фонах ) BigGrin
Лента RSS  Лента Atom
Пользователи, просматривающие эту тему
Guest (3)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.