Как правило, при обработке загрузки изображения обычная логика - загрузить исходное изображение на сторону сервера, а затем язык на стороне сервера выполняет работу масштабирования.
Этот режим, как правило, может удовлетворять большинству потребностей, но когда нам нужно изображение, является всего лишь миниатюр исходного изображения указанного размера, использование этого режима будет способом тратить ресурсы сервера и пропускную способность. Поэтому мы рассмотрим создание небольших изображений в браузере и затем загружаем их.
// Ниже приведено исходный код
Кода -копия выглядит следующим образом:
функция DrawCanvasimage (obj, ширина, обратный вызов) {
var $ canvas = $ ('<canvas> </canvas>'),
Canvas = $ canvas [0],
context = canvas.getContext ('2d');
var img = новое изображение ();
img.onload = function () {
if (ширина) {
if (ширина> img.width) {
var target_w = img.width;
var target_h = img.height;
}еще{
var target_w = ширина;
var target_h = parseint (target_w/img.width*img.height);
}
}еще{
var target_w = img.width;
var target_h = img.height;
}
$ canvas [0] .width = target_w;
$ canvas [0] .height = target_h;
context.drawimage (img, 0,0, target_w, target_h);
_canvas = canvas.todataurl ();
/* console.log(_canvas);*//
обратный вызов (obj, _canvas);
}
img.src = getfullpath (obj);
}
функция getFullPath (OBJ)
{
if (obj)
{
// т.е.
if (window.navigator.useragent.indexof ("msie")> = 1)
{
obj.select ();
return document.selection.createrange (). Text;
}
// Firefox
else if (window.navigator.useragent.indexof ("firefox")> = 1 || $ .browser.opera || $ .browser.mozilla)
{
if (obj.files && window.url.createobjecturl)
{
return window.url.createObjectUrl (obj.files [0]);
}
вернуть obj.value;
} else if ($. browser.safari) {
if (window.webkiturl.createobjecturl && obj.files) {
return window.webkiturl.createObjecturl (obj.files [0]);
}
вернуть obj.value;
}
вернуть obj.value;
}
}
Функция GetFullPath - получить адрес выбранного изображения.
_Canvas получает кодирование изображения BASE64, и просто перенесите его в бэкэнд, чтобы записать в файл.