Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111

Как canvas загрузить на сервер как изображение?

29.08.2022, 19:26. Показов 971. Ответов 6

Студворк — интернет-сервис помощи студентам
Я использовал плагин react-image-crop, после обрезание изображения я получаю base64 строку, как мне это всё собрать что бы загрузить на сервер картинку, а не base64.

Сервер хочет принимать изображение, я отправляю ему строку base64, получаю ошибку, нужно как-то решить это...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2022, 19:26
Ответы с готовыми решениями:

Как загрузить картину в Canvas?
global filename filename= filedialog.askopenfilename(initialdir="/",title="Open File",filetypes=) photo =...

Не удается загрузить изображение на сервер
Подскажите уже не знаю что делать Warning: copy(/var/www/test.kg/img/noutbuk-naushniki-klaviatura.jpg): failed to open stream: Permission...

Как загрузить картинку с локального диска на сайт (с canvas)?
Здравствуйте! Как загрузить картинку с помощью canvas только на форму сайта? Т.е. не в папку сайта а, только в форму.

6
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
29.08.2022, 19:38
А на каком ЯП у вас серверный скрипт?
0
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111
29.08.2022, 19:44  [ТС]
Получаю сейчас что-то типа
Code
1
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAUABQAMBIgACEQEDEQH/xAAdAAEAAAcBAQAAAAAAAAAAAAAAAwQFBgcICQIB/8QASBAAAQMDAwIDBQUFBgMFCQA.......
Добавлено через 52 секунды
Я не знаю, не давно на проекте....

Добавлено через 3 минуты
У меня просто есть API на которое они хотят что бы прислал изображение с Front-end, но так как я сначала обрезал его, через react-image-crop оно у меня в формате base64...
0
126 / 94 / 34
Регистрация: 24.06.2022
Сообщений: 253
29.08.2022, 21:50
Цитата Сообщение от Mukzer Посмотреть сообщение
после обрезание изображения я получаю base64 строку
код бы показали ..
Цитата Сообщение от Mukzer Посмотреть сообщение
как мне это всё собрать что бы загрузить на сервер картинку, а не base64.
Предположение
Делаете что-то такое
JavaScript
1
const base64Image = canvas.toDataURL('image/jpeg');
когда можно canvas.toBlob
0
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111
29.08.2022, 21:56  [ТС]
Вот у меня компонент ( и кастомный хук useCroppedImage ) который обрезает изображение, и в функции "getCroppedImg" возвращает обрезанное изображение как base64....

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import React, { FC } from 'react';
import ReactCrop, { Crop } from 'react-image-crop';
import { useTranslation } from 'react-i18next';
import Icon from '../icon/Icon';
import 'react-image-crop/dist/ReactCrop.css';
import Style from './CropImage.module.scss';
 
interface ICropImage {
  minWidth?: number;
  minHeight?: number;
  classes?: string;
  imageSrc: any;
  crop: Crop;
  setCrop: any;
  imgRef: any;
  onSelectFile: any;
  onLoad: any;
}
 
const CropImage: FC<ICropImage> = ({
  classes,
  minWidth = 250,
  minHeight = 250,
  imageSrc,
  crop,
  setCrop,
  imgRef,
  onSelectFile,
  onLoad
}) => {
  const { t } = useTranslation();
  return (
    <div className={classes ? classes : ''}>
      {imageSrc ? (
        <div className={Style.cropWrapper}>
          <ReactCrop
            crop={crop}
            minWidth={minWidth}
            minHeight={minHeight}
            onChange={(c) => setCrop(c)}
            aspect={1 / 1}
          >
            <img ref={imgRef} src={imageSrc} onLoad={onLoad} alt="crop image" />
          </ReactCrop>
        </div>
      ) : (
        <label
          className={Style.inputImage}
          title={t('crop-image.upload-a-photo')}
        >
          <input type="file" accept="image/*" onChange={onSelectFile} />
          <Icon id="attach" width={24} height={22} />
          <span>{t('crop-image.upload-a-photo')}</span>
        </label>
      )}
    </div>
  );
};
 
export default CropImage;
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import React, { useCallback, useRef, useState } from 'react';
import { Crop } from 'react-image-crop';
 
export const useCropImage = (
  width: number,
  height: number,
  minWidth = 250,
  minHeight = 250
) => {
  const imgRef = useRef<HTMLImageElement>(null);
  const [crop, setCrop] = useState<Crop>({
    unit: 'px',
    x: 130,
    y: 36,
    width: width < minWidth ? minWidth : width,
    height: height < minHeight ? minHeight : height
  });
  const [imageSrc, setImageSrc] = useState<any>();
  const [image, setImage] = useState<HTMLImageElement>();
  const onSelectFile = (event: React.ChangeEvent<HTMLInputElement>) => {
    if (event.target.files && event.target.files.length > 0) {
      const reader = new FileReader();
      reader.readAsDataURL(event.target.files[0]);
      reader.addEventListener('load', () => setImageSrc(reader.result));
    }
  };
  const onLoad = useCallback((evt: any) => setImage(evt.target), []);
  const getCroppedImg = () => {
    if (image) {
      const canvas = document.createElement('canvas') as HTMLCanvasElement;
      const scaleX = image.naturalWidth / image.width;
      const scaleY = image.naturalHeight / image.height;
      canvas.width = crop.width;
      canvas.height = crop.height;
      canvas
        .getContext('2d')!
        .drawImage(
          image,
          crop.x * scaleX,
          crop.y * scaleY,
          crop.width * scaleX,
          crop.height * scaleY,
          0,
          0,
          crop.width,
          crop.height
        );
      return canvas
        .toDataURL('image/jpeg')
        .replace('image/png', 'image/octet-stream');
    }
  };
  return {
    crop,
    imgRef,
    onLoad,
    setCrop,
    imageSrc,
    minWidth,
    minHeight,
    setImageSrc,
    onSelectFile,
    getCroppedImg
  };
};
Добавлено через 3 минуты
В документации показано как сделать что бы файл можно было скачать, а мне его скачивать не нужно, мне бы его как-то дальше передать api - сервер....
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
30.08.2022, 05:38
Цитата Сообщение от Mukzer Посмотреть сообщение
что бы загрузить на сервер картинку, а не base64.
Как выглядит запрос к серверу?
0
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111
30.08.2022, 07:52  [ТС]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.08.2022, 07:52
Помогаю со студенческими работами здесь

Как можно загрузить изображение как ресурс
Изучать Java начал совсем недавно, и вот что-то сделал. Экспортировал в .jar, потом в .exe, но само изображение не видно, окно получается...

Как сохранить изображение из Canvas?
Помогите пожалуйста нашел пример того как рисовать в canvas, с этим разобрался, а вот как сохранять нарисованное изображение не нашел. ...

Как на canvas переместить изображение?
как на canvas таскать изображение мышкой? можете подсказать, какие методы для этого использовать?

Самый простой способ загрузить изображение на сервер
Здравствуйте! Есть необходимость создать приложение под андроид которое будет иметь 1 кнопку и загружать выбранное изображение. ...

Как поместить изображение с Canvas-а в Bitmap?
Как поместить изображение с Canvas-а в Bitmap?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru