Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.11.2015, 16:44
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

Сообщение от laimas Посмотреть сообщение
Так нельзя, смотрите выше. Но и просто вставить в код эти строки тоже нельзя, это ведь надо делать по событию кнопки Сбросить.
я по событию это делаю
Ответить с цитированием
  #12 (permalink)  
Старый 02.11.2015, 16:48
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

смотрите как сделал

$('.original-image').on('click', testF);

testF = function() {
            var fileReader = new FileReader();
            var im = new Image();
            im.onload = function() {
                selectFromFile(this);
            }
            im.src =       'http://look.loc/statics/web/blogs/preview/9602/9602.jpg';
        },


и мне выкидывает ошибку Uncaught TypeError: Cannot read property 'files' of undefined
Ответить с цитированием
  #13 (permalink)  
Старый 02.11.2015, 16:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Нужно код переработать немножко, просто так вставить строки не получиться. )

Не надо дважды FileReader, нужно лишь описать отдельной функций получение содержимого изображения как для формы так и для кнопки, понятно о чем я говорю?
Ответить с цитированием
  #14 (permalink)  
Старый 02.11.2015, 16:56
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

ой fileReader нечаянно вставил у меня один он. ну я частично понимаю о чем вы только вот до конца не могу понять. Вот в im у меня объект изображения и я так понимаю в функции selectFromFile нужно сделать чтобы он загружался. я правильно понял или нет?
Ответить с цитированием
  #15 (permalink)  
Старый 02.11.2015, 16:57
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

я просто с js не на таком уровне дружу чтобы нормально это всё сделать(
Ответить с цитированием
  #16 (permalink)  
Старый 02.11.2015, 17:00
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

так а для кнопки как будет правильно получение? логику то я разделю для того и для того, меня больше волнует как сделать для кнопки
Ответить с цитированием
  #17 (permalink)  
Старый 02.11.2015, 17:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Функция selectFromFile должна принимать аргумент, например

selectFromFile = function(f)

который задает источник изображения - или files[0], или полученное по сети изображение, то есть передается в нее

selectFromFile(this.files[0]) - в обработчике onchange поля file

или

selectFromFile(this) - загруженное по сети в событии onload

а в функци работать с аргументом

fileReader.readAsDataURL(f);


В общем код надо править так или иначе. Ну и серверную часть тоже.
Ответить с цитированием
  #18 (permalink)  
Старый 02.11.2015, 17:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от pogranpv
так а для кнопки как будет правильно получение?

Ну если затруднительно, то смотрите далее - где полученное изображение передается непосредственно в обрезку, да еще если и аргументом, то есть будет более понятно.
Ответить с цитированием
  #19 (permalink)  
Старый 02.11.2015, 17:14
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

смотрите можно же и так сделать, т.е если криво для начала
$('.original-image').on('click', resetImage);
resetImage = function() {
            var im = new Image();
            im.src = 'http://look.loc/statics/web/blogs/preview/9602/9602.jpg';
            im.onload = function() {
                var fileReader = new FileReader();
                fileReader.readAsDataURL(this);
                $(fileReader).one(EVENT_LOAD, loadImage);
            }
        },


т.е просто чуть продублировать кода. но тогда выскакивает ошибка
Uncaught TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.
Ответить с цитированием
  #20 (permalink)  
Старый 02.11.2015, 17:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Запутал беднягу ). Это удалить в случае чтения сетевого файла

fileReader.readAsDataURL(this);

хотя можно и Blob получить, но нет смысла.

Это в функции selectFromFile

fileReader.readAsDataURL(f)

будет получать FileReader, а сетевое изображение (аргумент f), должно передаваться дальше на обработку. Для него не нужно var fileReader = new FileReader(); и fileReader.readAsDataURL(this);

Ищите далее по коду - передача этого в саму обрезку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прочитать параметры файла JPEG ещё в браузере, до загрузки на сервер? Webnode Общие вопросы Javascript 6 13.01.2014 20:44
Прогресс загрузки большого изображения или файла - как сделать Почемучкин Events/DOM/Window 7 19.10.2012 21:03
Загрузка файла AJAX'ом - почему-то переводит на страницу загрузки файла .andreev AJAX и COMET 13 21.10.2009 22:25
Поле загрузки файла. как опусташить? clgs Элементы интерфейса 1 26.06.2009 14:46
Поле загрузки файла kotofeich Элементы интерфейса 3 30.07.2008 11:24