Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Существует ли скрипт для изменения размера изображений? (https://javascript.ru/forum/misc/3451-sushhestvuet-li-skript-dlya-izmeneniya-razmera-izobrazhenijj.html)

Shad 20.04.2009 23:12

Существует ли скрипт для изменения размера изображений?
 
Существует ли скрипт который подгоняет размер изображения под размер таблицы в которой оно находится, с сохранением пропорций и чтоб он работал в html?

Riim 20.04.2009 23:31

http://javascript.ru/forum/project/3...razhenijj.html

AzriMan 21.04.2009 09:40

только учтите, что это серверный код на PHP и должна быть установлена библиотека GD. Средствами JS Вы этого не сделаете.

Riim 21.04.2009 10:06

Цитата:

Сообщение от AzriMan
Средствами JS Вы этого не сделаете.

А canvas. Но лучше действительно на сервере.

AzriMan 21.04.2009 11:33

1. canvas не поддерживается IE (если я не ошибаюсь). я видел либу, которая "учит" ie работать с canvas (переводит его в vml). но это уже извращение :)

2. и, да, соглашусь с тобой - лучше действительно на сервере. если так хочется через JS - то можно сделать ajax запрос который будет отдавать отресайзенную картинку :)

Riim 21.04.2009 12:36

Цитата:

Сообщение от AzriMan
я видел либу, которая "учит" ie работать с canvas (переводит его в vml).

Просто эта либа меня очень радует.

Цитата:

Сообщение от AzriMan
но это уже извращение

Насколько я в курсе, в других браузерах тот же vml, только его уже научили "быть canvas-ом". А глупого IE доучивать надо.

Цитата:

Сообщение от AzriMan
сделать ajax запрос который будет отдавать отресайзенную картинку

Рисунок загружаемый ajax-ом? Что-то новенькое.
На сервер ajax-ом отправить можно и рисунок, а вот обратно только текст или xml.

Kolyaj 21.04.2009 12:40

Цитата:

Сообщение от Riim
вот обратно только текст

Который является src-ом для картинки.

Riim 21.04.2009 13:03

Цитата:

Сообщение от Kolyaj
Который является src-ом для картинки.

Непонятно зачем так извращаться?

Kolyaj 21.04.2009 13:08

А где тут извращение?

Riim 21.04.2009 13:19

Два запроса вместо одного. Если только src на клиенте не известен. Но это очень маловероятно. Т. е. придумать такую ситуацию не проблема, проблема придумать ситуацию, где без этого никак.

Kolyaj 21.04.2009 13:23

Цитата:

Сообщение от Riim
Два запроса вместо одного.

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

Riim 21.04.2009 13:40

Цитата:

Сообщение от Kolyaj
обрабатывать изображение на клиенте намного большее извращение

Я про это не спорю. Я сам выше писал, что лучше сервере. К тому же если обработанный рисунок меньше, то тем более. Я спорю про то, что на javascript-е вообще никак нельзя этого сделать. И про то, что лучше все же очень постараться обойтись одним запросом.

Вот пример интересный: http://devfiles.myopera.com/articles..._4_enemies.htm
управлять с клавиатуры.

Kolyaj 21.04.2009 13:44

Вы тут как всегда в какие-то дебри полезли, когда ТСу нужна банальная установка стилей width и height.

Цитата:

Сообщение от Riim
И про то, что лучше все же очень постараться обойтись одним запросом.

Не надо все переводить в абсурдные крайности.

Цитата:

Сообщение от Riim
Вот пример интересный:

Вообще не в тему.

Riim 21.04.2009 13:53

Цитата:

Сообщение от Kolyaj
нужна банальная установка стилей width и height

А если обработанный рисунок в 10 раз меньше? Тоже width и height ему установить и ждать вечно, когда этот сайт загрузится?

Цитата:

Сообщение от Kolyaj
Не надо все переводить в абсурдные крайности.

Для меня это не крайности.

Цитата:

Сообщение от Kolyaj
Вообще не в тему.

Это про canvas.

Kolyaj 21.04.2009 14:00

Цитата:

Сообщение от Riim
Это про canvas.

Можно было еще рассказать как линии в canvas рисовать.

Объясните, пожалуйста, какую задачу вы сейчас пытаетесь решить? То, что вы говорите, слабо перекликается с темой топика.

Riim 21.04.2009 14:08

Цитата:

Сообщение от Kolyaj
Объясните, пожалуйста, какую задачу вы сейчас пытаетесь решить? То, что вы говорите, слабо перекликается с темой топика.

ТС спросил, как можно обрабатывать рисунки. Я предложил два решения. Что здесь слабо перекликается с темой топика? Если я отходил от темы, то меня спрашивали - я отвечал.

Цитата:

Сообщение от Kolyaj
Можно было еще рассказать как линии в canvas рисовать.

Не к чему придраться уже? Если имеете, что-либо против меня - предъявляйте.

Kolyaj 21.04.2009 14:33

Цитата:

Сообщение от Riim
ТС спросил, как можно обрабатывать рисунки.

Цитата:

Сообщение от Shad
Существует ли скрипт который подгоняет размер изображения под размер таблицы в которой оно находится, с сохранением пропорций и чтоб он работал в html?

Нужно изменение размера изображения. Установка свойств width и height меняют размер изображения. При чем тут canvas вообще?

Цитата:

Сообщение от Riim
Не к чему придраться уже?

Да куча всего.
Цитата:

Сообщение от Riim
А если обработанный рисунок в 10 раз меньше? Тоже width и height ему установить и ждать вечно, когда этот сайт загрузится?

А вы предлагаете обрабатывать изображение не загружая?

Riim 21.04.2009 15:12

Цитата:

Сообщение от Kolyaj
Установка свойств width и height меняют размер изображения.

Вы в этом уверены? То, что рисунок отображается с определенными размерами, еще не значит, что он действительно имеет такие размеры. По ТС точно нельзя сказать, что нужно, установить width и height или действительно изменить рисунок. Как понял, так и ответил. Если вы поняли по другому, то вместо того что бы спорить предложили бы свой вариант, а Shad уже сам разобрался бы, что ему нужно.

Цитата:

Сообщение от Kolyaj
При чем тут canvas вообще?

Да как до вас не доходит то? Я не говорил, что здесь нужно применять canvas. Я сказал, что на клиенте, возможно обрабатывать рисунки.

Цитата:

Сообщение от Kolyaj
Да куча всего.

Похоже, у вас явно настроение поспорить на любую тему. Лишь бы поспорить.

Цитата:

Сообщение от Kolyaj
А вы предлагаете обрабатывать изображение не загружая?

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

Kolyaj 21.04.2009 15:37

Цитата:

Сообщение от Riim
Вы в этом уверены?

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

Цитата:

Сообщение от Riim
Я сказал, что на клиенте, возможно обрабатывать рисунки.

Ну не менять же размеры изображения канвасом.

Цитата:

Сообщение от Riim
Я не знаю, как вы меня здесь поняли, но я имел в виду то, что рисунок, который нужно отображать, возможно, имеет заметно меньшие размеры, чем тот, что есть на сервере. И что бы не грузить большой рисунок можно уменьшить его до отправки.

До отправки откуда куда? С сервера клиенту? При чем здесь canvas тогда?

AzriMan 21.04.2009 15:57

Цитата:

Сообщение от Riim (Сообщение 17230)
Рисунок загружаемый ajax-ом? Что-то новенькое.
На сервер ajax-ом отправить можно и рисунок, а вот обратно только текст или xml.

обратно можно всё что угодно. вплоть до того, что бы занести рисунок в сессию, вернуться в js с строкой ответа "OK", на клиенте проверить, если вернулось "ОК" - сделать обычный window.location.href на php файл который пошлет клиенту header() картинки и.. ой. что-то я ушел от темы. в этом случае он сможет сохранить файл *pardon*

и, да, конечно-же, можно вернуть строку с src на уменьшенную картинку :)

p.s. а ну не ссорьтесь! ) стоило мне отойти на несколько часов - подняли склоку ))

Riim 21.04.2009 16:51

Цитата:

Сообщение от Kolyaj
Какая разница, какие реальные размеры изображения, нам его показать надо.

Жаль, что вы не понимаете этой разницы.

Цитата:

Сообщение от Kolyaj
До отправки откуда куда? С сервера клиенту? При чем здесь canvas тогда?

Верно, с сервера клиенту. canvas здесь не причем. Речь шла о возможности обработки рисунков на javascript.

Цитата:

Сообщение от Kolyaj
Ну не менять же размеры изображения канвасом.

Устал я писать вам ответы на одни и те же вопросы. Поэтому буду цитировать себя:
Цитата:

Сообщение от Riim
Да как до вас не доходит то? Я не говорил, что здесь нужно применять canvas. Я сказал, что на клиенте, возможно обрабатывать рисунки.

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

Riim 21.04.2009 16:57

Цитата:

Сообщение от AzriMan
обратно можно всё что угодно. вплоть до того, что бы занести рисунок в сессию, вернуться в js с строкой ответа "OK", на клиенте проверить, если вернулось "ОК" - сделать обычный window.location.href на php файл который пошлет клиенту header() картинки и.. ой. что-то я ушел от темы. в этом случае он сможет сохранить файл *pardon*

Под "обратно" имелось в виду обратно клиенту, а не обратно серверу.
Т. е. вот это:
Цитата:

Сообщение от AzriMan
вернуться в js с строкой ответа "OK"

Видите, вы сами написали "с строкой ответа". Со строкой а не с рисунком.

Вообще-то ajax очень не однозначное понятие и если о-о-очень постараться, то можно и это считать ajax-ом.

AzriMan 22.04.2009 09:47

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

ajax, на мой взгляд, вполне однозначное понятие. асинхронный яваскрипт он и в африке будет таким :)

а что ВЫ считаете аяксом?

Riim 22.04.2009 11:06

Цитата:

Сообщение от AzriMan
Под "обратно" имелось ввиду как раз таки обратно клиенту.
вернуть обратно можно всё что угодно. хоть бинарник, который отобразится в браузере. но вот что с ним будет делать дальше юзер - останется загадкой.

Можно пример?

Цитата:

Сообщение от AzriMan
а что ВЫ считаете аяксом?

Цитата:

Сообщение от AzriMan
ajax, на мой взгляд, вполне однозначное понятие. асинхронный яваскрипт он и в африке будет таким

Проблема в последней букве "х":
Цитата:

AJAX – акроним, расшифровывающийся как – Asynchronous JavaScript and XML. AJAX – это технология создания динамических интерфейсов веб-приложений, основанная на асинхронном фоновом обмене данными в XML формате между сценариями написанными на JavaScript и сервером.
Т. е. судя по определению, предполагается, что обмен данными будет только в формате xml и это будет именно асинхронный обмен данными. А вы вот говорите, что хоть бинарники. Я не спорю, понимание этого термина давно вышло за рамки того, как расшифровываются эти 4 буквы. Но и до бинарников еще не дошло.

AzriMan 22.04.2009 12:13

Цитата:

Сообщение от Riim (Сообщение 17330)
Можно пример?

пример того как у юзера на странице отобразится бинарник? ну.. я отсылаю запрос на php, там происходит чтение какого-нибудь bin файла. это всё отдается на выход через echo и возвращается в JS. а там я делаю document.getElementById('someID').innetHTML = ajaxObj.responseText;
(как-то так)


Цитата:

Сообщение от Riim (Сообщение 17330)
Т. е. судя по определению, предполагается, что обмен данными будет только в формате xml и это будет именно асинхронный обмен данными. А вы вот говорите, что хоть бинарники. Я не спорю, понимание этого термина давно вышло за рамки того, как расшифровываются эти 4 буквы. Но и до бинарников еще не дошло.

Да, Вы правы. видимо я немного погорячился с терминологией.

Riim 22.04.2009 12:46

Цитата:

Сообщение от AzriMan
ну.. я отсылаю запрос на php

Идет запрос на сервер. Все понятно.

Цитата:

Сообщение от AzriMan
там происходит чтение какого-нибудь bin файла

Тут не понятно. Если выполнение файла, то получаем возможно строку. Если чтение файла в память, как двоичных данных, то получаем MemoryStream.

Цитата:

Сообщение от AzriMan
это все отдается на выход через echo

Раз через echo, значит было выполнение бинарника.

Цитата:

Сообщение от AzriMan
document.getElementById('someID').innetHTML = ajaxObj.responseText;

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

AzriMan 22.04.2009 14:16

Цитата:

Сообщение от Riim (Сообщение 17342)
Так и где здесь бинарник? Я вижу результат выполнения бинарника в виде строки. Вы же сказали, что я могу в javascript-е получить сам бинарник, т. е. поток байт.
Еще раз повторяю: обратно в javascript можно получить либо текст, либо xml. Если получаемый текст это результат выполнения бинарника, то это все же текст, а не сам этот бинарник.


Цитата:

Сообщение от AzriMan (Сообщение 17327)
вернуть обратно можно всё что угодно. хоть бинарник, который отобразится в браузере. но вот что с ним будет делать дальше юзер - останется загадкой.

ок, перефразирую.
"...хоть бинарную последовательность данных, которая в дальнейшем отобразится в браузере пользователя в виде текста..."

Riim 22.04.2009 14:29

Цитата:

Сообщение от AzriMan
ок, перефразирую.
"...хоть бинарную последовательность данных, которая в дальнейшем отобразится в браузере пользователя в виде текста..."

Я понял, что вы меня поняли :) , но вот свои мысли вы по прежнему выражаете некорректно. По тому, что написано, в javascript по прежнему попадает поток байт, а не текст. Давайте так:
"...хоть бинарную последовательность данных, представленную в виде строки, которая в дальнейшем отобразится в браузере пользователя ..."

AzriMan 22.04.2009 15:32

OK. уломали :)


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