Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание миниатюры на стороне клиента (https://javascript.ru/forum/misc/13978-sozdanie-miniatyury-na-storone-klienta.html)

x-yuri 25.12.2010 06:57

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

если еще актуально, можешь мою реализацию попробовать

dmitriymar 25.12.2010 10:09

Цитата:

Сообщение от RE_
3) Создавать миниатюры яваскриптом на стороне клиента, а потом заливать их на сервер.

можно-но есть там куча моментов

RE_ 25.12.2010 17:09

kadabrik, x-yuri, попробую, но привязка флеша займет определенное время.

dmitriymar, можно? А можно пример или хотя бы методы/функции нужные?

dmitriymar 25.12.2010 17:15

пример не дам-сам сейчас в процессе. но скажу как-изображение в канву соответсвующего размера и скриншот.

canvas.toDataURL("image/png") возвращает base64-кодированный PNG-«скриншот» канвы. и отправить на сервер уже файл нужного размера.

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

dmitriymar 25.12.2010 17:23

вот текст полного ответа какой я получил по скриншоту из канвы
Цитата:

Сообщение от subzey
canvas.toDataURL("image/png") возвращает base64-кодированный PNG-«скриншот» канвы. Отослать его на сервер, разобрать в php base64, и вуаля. Если хочется, можно сохранить строку в файл. Если хочется, можно скормить её GD и сделать jpg.


kadabrik 25.12.2010 23:05

Canvas не будет работать в IE ниже 9 версии, тоесть в большинстве ослов на сегодня.

dmitriymar 25.12.2010 23:08

kadabrik,
растрою ,канва работает в ie ниже 9 версии-нужно библиотеку полключить и експлорер начинает работать с канвой и всеми её функциями
excanvas.js -одна из библиотек раелизующих канву в експлорере
есть ещё библиотека полной поодержки

RE_ 26.12.2010 14:24

dmitriymar, канвас - хорошая мысль.
Правда пока нашел простенький вариант (на php), который конечно не решает проблемы, по позволяет ее обойти в некоторых случаях.
Мы тянем превьюшку, которая встроена в jpg, и работаем с ней:

if(exif_thumbnail($tmpname)) {
	$image_tmp = exif_thumbnail($tmpname, $width, $height);
	$image = imagecreatefromstring($image_tmp);
	imagecopyresampled(
		$thumb, $image, 0, 0, 0, 0,
		$tsize[0], $tsize[1], $width, $height
		);
}


Правда это работает только с включенным на сервере exif и только если в картинке есть превьюшка, поэтому вариант не окончательный.
Постараюсь что-нибудь придумать с канвасами.
x-yuri, добавление флеш заливки не очень хороший вариант(я это не упомянул) т.к. желательно было бы генерировать тумбнейлы в первую очередь при массовой заливке с ftp. Если никак не получится, то буду пытаться использовать этот вариант.

dmitriymar 26.12.2010 14:31

я ща просто налетел на то что при выборе файла-он отображается(тоесть его можно отобразить на странице ) в сафари, ие ,фф. а вот в опере и хроме нет. причину вижу в том что те браузеры-отображают только название файла -скрывая путь-если присваивать путь из строки выбора переменной-но работает с полным ,а хром и опера пишет путь при присваивании на манер-с:\fakepath\ -причём неважно на каком диске лежит изображение -всё равно будет диск с /фкепатч/имя файла.вот сейчас думаю как с:\fakepath\ обойти -если пройдёт что при убирании его будет работать как и в остальных браузерах-тогда норм. но вот если они скрывают путь этим-тогда всё станет. а вот остальная реализация-уменьшение в размерах,отправка на сервер -это не проблема

x-yuri 26.12.2010 15:00

Цитата:

Сообщение от RE_
x-yuri, добавление флеш заливки не очень хороший вариант(я это не упомянул) т.к. желательно было бы генерировать тумбнейлы в первую очередь при массовой заливке с ftp. Если никак не получится, то буду пытаться использовать этот вариант.

ну, и к чему тогда вот это было?
Цитата:

Сообщение от RE_
В смысле мне их скачивать сжимать фотошопом, например, и обратно заливать?)
Не, ну понятно можно и программку написать, которая бы взаимодейтвовала с сервером, но это равносильно. Нужна автоматизация

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


Часовой пояс GMT +3, время: 11:43.