sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mariadb
  • java
  • 고득점KIT
  • Android Studio
  • 연습문제
  • JPA
  • nginx
  • 오블완
  • 백준
  • spring boot
  • 레벨2
  • 고득점 Kit
  • docker
  • 안드로이드 스튜디오
  • 티스토리챌린지
  • kotlin
  • 알고리즘
  • 프로그래머스
  • DB
  • 레벨3

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

NodeJS/React

[React] 모바일 환경에서 카메라를 통해 이미지를 획득하는 방법(feat.. input, environment)

2023. 9. 19. 17:49
728x90

발단

디바이스의 카메라를 제어해야 하는 상황에서 간단하게 카메라를 통해 이미지를 획득할 수 있는 방법을 알게 되어 공유합니다.

 

카메라 제어 방법

<input accept="image/*" type="file" capture="environment"/>
  • 위 input 의 이벤트를 발생시키게 되면 모바일 환경에서 카메라를 제어할 수 있습니다.

 

Capture 프로퍼티

  • `environment, user` 두가지 속성을 가집니다.
    • environement : 모바일 환경의 후면부 카메라를 제어합니다.
    • user : 모바일 환경의 전면부 카메라를 제어합니다.
  • capture 프로퍼티는 모바일 환경에서만 동작하는 API 임으로 웹에서는 우리가 아는 input 으로써의 동작을 행합니다.
  • 자세한 설명은 아래 참고를 확인하여주세요.

 

간단한 카메라 예제 코드

import React, {useState} from 'react';

function VideoCamera() {
    const [source, setSource] = useState("");
    const handleCapture = (target) => {
        if (target.files) {
            if (target.files.length !== 0) {
                const file = target.files[0];
                const newUrl = URL.createObjectURL(file);
                setSource(newUrl);
            }
        }
    };
    return (
        <div>
            {source && <img src={source} alt={"snap"} width='500' height='500'></img>}

            <input
                accept="image/*"
                id="icon-button-file"
                type="file"
                capture="environment"
                onChange={(e) => handleCapture(e.target)}
            />
        </div>
    );
}

export default VideoCamera;

 

참고

  • PWA 에서 카메라를 통해 이미지 획득 방법
 

How to access the camera of a mobile device using React Progressive Web App (PWA)

What is a Progressive Web App

engineering.99x.io

  • capture 프로퍼티는 무엇인가?

 

 

HTML attribute: capture - HTML: HyperText Markup Language | MDN

The capture attribute specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute.

developer.mozilla.org

 

728x90
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바