삼성 갤럭시 s7 일반 qr 스캐너. iPhone으로 QR 코드를 스캔하는 방법

SNS나 게임은 물론 일상생활에 유용한 프로그램을 스마트폰에 담아두는 것도 나쁘지 않다. 이제 QR 코드는 도시의 거리, 제품 포장, 명함 등 거의 모든 곳에서 볼 수 있습니다. 물론 그것들을 읽으려면 특별한 소프트웨어가 필요합니다. 이 작업을 위한 5가지 최상의 솔루션은 아래에서 설명합니다.

QR Droid는 주로 쾌적하고 중요한 것은 이해하기 쉬운 인터페이스가 다릅니다. 이 애플리케이션은 Android 기기 사용자들 사이에서 오랫동안 알려져 왔습니다. 일단 실행되면 필요한 코드를 즉시 스캔할 수 있습니다. 웹 페이지에 대한 링크가 포함된 경우 자동으로 내장 브라우저로 이동합니다. 그러나 이것은 설정에서 비활성화하거나 자신의 버전을 기본 브라우저로 설정할 수 있습니다. 프로그램에서 바로 필요한 정보로 나만의 QR 코드를 만들 수 있다는 것도 흥미 롭습니다.

2.QR 코드 리더

삶을 복잡하게 만들고 싶지 않고 간단한 스캐너를 찾고 있다면 QR 코드 리더가 훌륭한 솔루션입니다. 카메라 만 있습니다 (갤러리에서 기성품 이미지를 선택할 수도 있음), 스캔 한 QR 코드 기록 및 플래시 버튼, 그 이상은 없습니다.

3. 비디

BIDI 앱은 여러 면에서 QR Droid와 유사합니다. 여기서 우리는 QR 코드의 일반적인 인식뿐만 아니라 우리 자신의 코드를 생성할 수 있는 좋은 기회를 가지고 있습니다. 예를 들어, 명함. 매우 편안합니다. 전화번호, 주소, 이메일 등에 대한 특수 구분 기호가 있습니다. 그런 다음 모든 필드에 필요한 변경을 수행할 수 있습니다.

4.네오리더

Neo Reader는 QR 코드뿐만 아니라 바코드에서도 정보를 읽을 수 있기 때문에 아마도 가장 강력한 솔루션 중 하나일 것입니다. 상점에서와 마찬가지로 애플리케이션이 코드를 인식하지 못하는 경우 그 아래에 수동으로 숫자를 입력할 수 있습니다. 소리를 켜거나 끄는 기능과 위치에 대한 링크도 있습니다. 이상한 점은 프로그램에서 직접 QR 코드를 생성하는 기능이 제공되지 않는다는 것입니다. 또는 해당 사이트에 대한 빠른 링크가 제공됩니다.

5. QR 리더

출시 후 가장 먼저 눈길을 끄는 것은 무빙 레드 라인이다. 그들이 어떤 역할을 하는지는 확실하지 않지만(그냥 장식적인 요소일 뿐임) 흥미롭게 보입니다. 한 가지 더 : 시스템 버튼의 위치로 판단되는 응용 프로그램은 가로 모드에서 작동합니다. 이를 명심하십시오 (읽기 모드에서는 모든 콘텐츠가 세로로 위치함). 메뉴에는 스캔 및 북마크 기록이 있습니다. 나만의 QR 코드를 만들 수 있습니다.

어떤 QR코드 리더기를 사용하시나요?

AndroidPit에 따르면

QR 코드를 스캔할 수 있는 애플리케이션을 만들었습니다. 제외한 모든 안드로이드 기기에서 잘 작동합니다. 삼성 갤럭시 S4.
Galaxy s4 기기 사용 시 앱이 QR 코드를 스캔하지 않습니다.
이제 이 Galaxy s4는 Android 4.2.2를 실행하므로 Nexus-4와 동일한 Android 버전(4.2.2)을 사용하는 다른 기기에서도 내 앱을 테스트했는데 잘 작동합니다.
Galaxy s4에서 QR 코드를 스캔하는 데 사용되는 다른 하드웨어가 있습니까?
이 이상한 문제에 대한 도움이 필요합니다!

아래는 내 응용 프로그램에서 사용한 코드입니다.

CameraManager.java

/** * 이 개체는 카메라 서비스 개체를 래핑하고 대화하는 유일한 개체가 될 것으로 예상합니다. * 구현은 미리 보기 및 디코딩 모두에 사용되는 미리 보기 크기의 이미지를 가져오는 데 필요한 단계를 캡슐화합니다. * * @작가 [이메일 보호] (Daniel Switkin) */ public final class CameraManager( private static final String TAG = CameraManager.class.getSimpleName(); private static final int MIN_FRAME_WIDTH = 240; private static final int MIN_FRAME_HEIGHT = 240; private static final int MAX_FRAME_WIDTH = 480; private static final int MAX_FRAME_HEIGHT = 360; private static CameraManager cameraManager; static final int SDK_INT; // 나중에 Build.VERSION.SDK_INT를 사용할 수 있습니다. static ( int sdkInt; try ( sdkInt = Integer.parseInt(Build.VERSION.SDK); ) catch (NumberFormatException nfe) ( // 안전을 위해 sdkInt = 10000; ) SDK_INT = sdkInt; ) 비공개 최종 컨텍스트 컨텍스트; 비공개 최종 CameraConfigurationManager configManager; 비공개 카메라 카메라; 비공개 Rect framingRect; 비공개 Rect framingRectInPreview; 비공개 부울 초기화됨; 비공개 부울 미리보기 ; private boolean reverseImage; private final boolean useOneShotPreviewCallback; /** * 미리보기 프레임이 여기에서 전달되며 등록된 처리기로 전달됩니다. 하나의 메시지만 수신하도록 핸들러를 * 지우십시오. */ 비공개 최종 PreviewCallback previewCallback; /** 자동 초점 콜백이 여기에 도착하고 이를 요청한 핸들러로 전달됩니다. */ 비공개 최종 AutoFocusCallback autoFocusCallback; /** * 호출 활동의 컨텍스트로 이 정적 객체를 초기화합니다. * * @param context 카메라를 사용하고자 하는 Activity. */ public static void init(Context context) ( if (cameraManager == null) ( cameraManager = new CameraManager(context); ) ) /** * CameraManager 싱글톤 인스턴스를 가져옵니다. * * @return CameraManager 싱글톤에 대한 참조입니다. */ public static CameraManager get() ( return cameraManager; ) private CameraManager(Context context) ( this.context = context; this.configManager = new CameraConfigurationManager(context); // Camera.setOneShotPreviewCallback()은 Cupcake에서 경합 조건을 갖습니다. 그래서 우리는 1.5 이전 버전의 Camera.setPreviewCallback()을 사용합니다. 메모리가 부족합니다. Donut SDK에 도입되었기 때문에 SDK_INT를 사용할 수 없습니다. useOneShotPreviewCallback = Integer.parseInt(Build.VERSION.SDK) > 3 ; // 3 = Cupcake previewCallback = new PreviewCallback(configManager, useOneShotPreviewCallback); autoFocusCallback = new AutoFocusCallback(); ) /** * 카메라 드라이버를 열고 하드웨어 매개변수를 초기화합니다. * * @param holder 카메라가 프리뷰 프레임을 그릴 표면 객체. * @throws IOException 카메라 드라이버가 열리지 않았음을 나타냅니다. */ public void openDriver(SurfaceHolder holder) throws IOException ( if (camera == null) ( camera = Camera.open(); if (camera == null) ( throw new IOException(); )) camera.setPreviewDisplay(holder) ; if (!initialized) ( 초기화 = true; configManager.initFromCameraParameters(camera); ) configManager.setDesiredCameraParameters(camera); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); reverseImage = prefs.getBoolean(PreferencesActivity.KEY_REVERSE_IMAGE, false); if (prefs.getBoolean(PreferencesActivity.KEY_FRONT_LIGHT, false)) ( FlashlightManager.enableFlashlight(); ) ) /** * 아직 사용 중인 경우 카메라 드라이버를 닫습니다. */ public void closeDriver() ( if (camera != null) ( FlashlightManager.disableFlashlight(); camera.release(); camera = null; // 카메라를 닫을 때마다 이를 지워야 스캐닝이 rect // 의도에 의해 요청된 것이 잊혀짐.framingRect = null; framingRectInPreview = null; ) ) /** * 미리보기 프레임을 화면에 그리기 시작하도록 카메라 하드웨어에 요청합니다. */ public void startPreview() ( if (camera != null && !previewing) ( camera.startPreview(); previewing = true; ) ) /** * 미리보기 프레임 그리기를 중지하도록 카메라에 알립니다. */ public void stopPreview() ( if (camera != null && previewing) ( if (!useOneShotPreviewCallback) (camera.setPreviewCallback(null); ) camera.stopPreview(); previewCallback.setHandler(null, 0); autoFocusCallback.setHandler (null, 0); previewing = false; ) ) /** * 단일 미리보기 프레임이 제공된 핸들러로 반환됩니다. 데이터는 message.obj 필드에 바이트 *로 도착하며 너비와 높이는 각각 message.arg1과 message.arg2, *로 인코딩됩니다. * * @param handler 메시지를 보낼 핸들러. * @param message 보낼 메시지의 필드. */ public void requestPreviewFrame(Handler handler, int message) ( if (camera != null && previewing) ( previewCallback.setHandler(handler, message); if (useOneShotPreviewCallback) (camera.setOneShotPreviewCallback(previewCallback); ) else (camera.setPreviewCallback (previewCallback); ) ) ) /** * 자동 초점을 수행하도록 카메라 하드웨어에 요청합니다. * * @param handler 자동 초점이 완료되면 알릴 핸들러입니다. * @param message 전달할 메시지. */ public void requestAutoFocus(Handler handler, int message) ( if (camera != null && previewing) ( autoFocusCallback.setHandler(handler, message); //Log.d(TAG, "자동 초점 콜백 요청"); 카메라 .autoFocus(autoFocusCallback); ) ) /** * 사용자에게 바코드를 배치할 위치를 표시하기 위해 UI가 그려야 하는 프레임 사각형을 * 계산합니다. 이 타겟은 정렬에 도움이 될 뿐만 아니라 사용자가 이미지에 초점이 맞도록 기기를 충분히 멀리 유지하도록 합니다. * * @return 창 좌표에서 화면에 그릴 사각형. */ public Rect getFramingRect() ( if (framingRect == null) ( if (camera == null) ( return null; ) Point screenResolution = configManager.getScreenResolution(); int width = screenResolution.x * 3 / 4; if ( 너비< MIN_FRAME_WIDTH) { width = MIN_FRAME_WIDTH; } else if (width >MAX_FRAME_WIDTH) ( 폭 = MAX_FRAME_WIDTH; ) int 높이 = screenResolution.y * 3 / 4; 만약 (높이< MIN_FRAME_HEIGHT) { height = MIN_FRAME_HEIGHT; } else if (height > MAX_FRAME_HEIGHT) ( 높이 = MAX_FRAME_HEIGHT; ) int leftOffset = (screenResolution.x - 너비) / 2; int topOffset = (screenResolution.y - 높이) / 2; framingRect = new Rect(leftOffset, topOffset, leftOffset + 너비, topOffset + 높이); Log.d(TAG, "계산된 프레이밍 사각형: " + framingRect); ) framingRect 반환; ) /** * (@link #getFramingRect)와 비슷하지만 좌표는 UI/화면이 아니라 * 미리보기 프레임 기준입니다. */ public Rect getFramingRectInPreview() ( if (framingRectInPreview == null) ( Rect rect = new Rect(getFramingRect()); Point cameraResolution = configManager.getCameraResolution(); Point screenResolution = configManager.getScreenResolution(); /* 업데이트하여 허용 가로 대신 세로 방향 rect.left = rect.left * cameraResolution.y / screenResolution.x; rect.right = rect.right * cameraResolution.y / screenResolution.x; rect.top = rect.top * cameraResolution.x / screenResolution .y; rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y; */ rect.left = rect.left * cameraResolution.x / screenResolution.x; rect.right = rect.right * cameraResolution.x / screenResolution .x; rect.top = rect.top * cameraResolution.y / screenResolution.y; rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y; framingRectInPreview = rect; ) return framingRectInPreview; ) /** * 세 번째 허용 * 화면 해상도에 따라 자동으로 결정하는 대신 스캐닝 사각형 크기를 지정하는 파티 앱. * * @param width 스캔할 너비(픽셀 단위). * @param height 스캔할 픽셀의 높이. */ public void setManualFramingRect(int width, int height) ( Point screenResolution = configManager.getScreenResolution(); if (width > screenResolution.x) ( width = screenResolution.x; ) if (height > screenResolution.y) ( height = screenResolution .y; ) int leftOffset = (screenResolution.x - 너비) / 2; int topOffset = (screenResolution.y - 높이) / 2; framingRect = new Rect(leftOffset, topOffset, leftOffset + 너비, topOffset + 높이); 로그. d(TAG, "Calculated manual framing rect: " + framingRect); framingRectInPreview = null; ) /** * Camera.Parameters에 설명된 대로 * 미리 보기 버퍼의 형식을 기반으로 적절한 LuminanceSource 개체를 빌드하는 팩터리 메서드입니다. * * @param data 미리보기 프레임. * @param width 이미지의 너비. * @param height 이미지의 높이. * @return PlanarYUVLuminanceSource 인스턴스. */ public PlanarYUVLuminanceSource buildLuminanceSource(byte data, int width, int height) ( Rect rect = getFramingRectInPreview(); int previewFormat = configManager.getPreviewFormat(); String previewFormatString = configManager.getPreviewFormatString(); switch (previewFormat) ( // 이것은 모든 기기가 지원해야 하는 표준 Android 형식입니다. // 이론적으로 이것은 우리가 관심을 가져야 하는 유일한 것입니다. case PixelFormat.YCbCr_420_SP: // 이 형식은 야생에서 본 적이 없지만 우리는 Y 채널만 고려하므로 // 호환되므로 허용합니다. case PixelFormat.YCbCr_422_SP: 새로운 PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, rect.width(), rect.height(), reverseImage)를 반환합니다. default: // Samsung Moment는 "sp" 버전 대신 이 변형을 잘못 사용합니다. // 다행히도 모든 Y 데이터가 앞에 있으므로 읽을 수 있습니다. if ("yuv420p".equals(previewFormatString)) ( return new PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, rect.width(), rect.height(), reverseImage); ) ) 새 IllegalArgumentException 발생 ("지원되지 않는 그림 형식: " + previewFormat + "/" + previewFormatString); ) )

PreviewCallback.java

최종 클래스 PreviewCallback 구현 Camera.PreviewCallback( 개인 정적 최종 문자열 TAG = PreviewCallback.class.getSimpleName(); 개인 최종 CameraConfigurationManager configManager; 개인 최종 부울 useOneShotPreviewCallback; 개인 핸들러 previewHandler; 개인 int previewMessage; PreviewCallback(CameraConfigurationManager configManager, 부울 useOneShotPreviewCallback) ( this .configManager = configManager; this.useOneShotPreviewCallback = useOneShotPreviewCallback; ) void setHandler(Handler previewHandler, int previewMessage) ( this.previewHandler = previewHandler; this.previewMessage = previewMessage; ) public void onPreviewFrame(byte data, Camera camera) ( Point cameraResolution = configManager .getCameraResolution(); if (!useOneShotPreviewCallback) ( camera.setPreviewCallback(null); ) if (previewHandler != null) ( Message message = previewHandler.obtainMessage(previewMessage, cameraResolution.x, cameraResolution.y, data); message.sendToTarget (); 미리보기핸들러 = null; ) else ( Log.d(TAG, "미리보기 콜백이 있지만 이에 대한 핸들러가 없음"); ) ) )

QR 코드는 1994년에 개발된 특수 매트릭스 코드로 불과 몇 년 전에 널리 알려졌습니다. 웹 사이트 링크, 이미지, 전자 명함 등 다양한 정보를 QR 코드 아래에 숨길 수 있습니다. 오늘은 아이폰에서 QR코드를 인식하는 방법에 대해 알아보겠습니다.

iPhone에서는 QR 코드를 스캔하는 두 가지 방법이 있습니다. 일반적인 방법과 특수 응용 프로그램을 사용하는 것입니다.

방법 1: 카메라 앱

iOS 11에서는 한 가지 매우 흥미로운 기능이 등장했습니다. 이제 카메라 앱이 자동으로 QR 코드를 검색하고 인식할 수 있습니다. 스마트폰 설정에서 적절한 설정이 활성화되어 있는지 확인하기만 하면 됩니다.

방법 2: QR스캐너

App Store에서 배포되는 타사 스캔 앱은 일반 iPhone 도구보다 더 많은 옵션을 제공합니다. 또한 구식 Apple 스마트 폰 모델의 소유자라면 11 번째 버전으로 업그레이드 할 기회가 없을 것입니다. 따라서 이러한 애플리케이션은 휴대전화에 스캔 기능을 제공하는 유일한 방법입니다.

방법 3: Kaspersky QR 스캐너

QR 코드 아래 숨겨진 모든 링크가 안전한 것은 아닙니다. 그 중 일부는 기기와 개인 정보를 심각하게 해칠 수 있는 악성 및 피싱 리소스로 이어집니다. 그리고 가능한 위협으로부터 자신을 보호하려면 스캐너일 뿐만 아니라 악성 웹사이트에 대한 보호 도구인 Kaspersky QR 스캐너 애플리케이션을 사용하는 것이 좋습니다.

Android 스마트폰에서 QR 코드를 스캔하는 것이 사진을 찍는 것보다 쉽습니다. 필요한 것은 다음과 같습니다.

  • 카메라가 장착된 스마트폰 또는 태블릿
  • 인터넷.

모든 것을 최대한 간단하게 설명하고 실용적인 교훈을 줄 것입니다. 기사에서 벗어나지 않고 바로 여기. 동일한 지침을 사용하여 바코드를 스캔할 수도 있습니다.

“내 스마트폰의 인터페이스는 다른 테마와 Android 버전으로 인해 귀하의 것과 다를 수 있습니다. 차이점은 QR 코드 스캐너 설치 및 사용 프로세스에 영향을 미치지 않습니다.”

먼저 QR 코드 스캐너가 필요합니다. 가장 쉬운 것을 찾았습니다. 성가신 광고가 적고 필요한 것을 스캔합니다. 그것을 설치하는 것은 매우 쉽습니다. 사용이 더욱 간편합니다.

  1. 시작하려면 Google Play 마켓으로 이동하세요. 그리고 빨간색 밑줄이 그어진 줄에 "qr 코드 스캐너" 또는 더 나은 "스마트 qr 스캐너 및 생성기"를 씁니다. 검색 아이콘 또는 우리에게 적합한 드롭다운 제안을 클릭합니다.


또한 당사에서 또 다른 훌륭한 스캔 응용 프로그램을 다운로드할 수 있습니다.

저장된 사진에서 코드를 스캔하는 방법은 무엇입니까?

특수 웹 사이트를 사용하여 인터넷의 이미지에서 QR 코드를 인식할 수도 있습니다. qrrd.ru를 선택한 이유는 10초도 안 되는 로딩 시간과 어느 정도 쾌적한 인터페이스를 가진 유일한 사이트이기 때문입니다.

사용 방법? 먼저 qrrd.ru 사이트로 이동하거나 qrrd.ru/read로 직접 이동합니다. 우리는 다음을 봅니다.

녹색 원으로 표시된 사이트의 메뉴는 귀하를 돕기 위해 할 수 있는 모든 것을 나열합니다. 이 경우 "QR 코드 인식"을 선택하십시오.

큰 "+파일 선택" 버튼과 함께 다음 페이지가 열립니다. 클릭합니다. 그런 다음 "파일 선택"과 같은 옵션이 하단에 나타납니다. 여기에서 즉시 사진을 찍어 보낼 수 있습니다. 또는 문서를 클릭하고 이미 휴대폰에 있는 사진을 선택합니다. 나는 마지막 길을 갔다.

여기에서 사진이 있는 탭을 선택하고 내 휴대폰에 사진이 저장된 폴더를 클릭한 다음 이전 기사에서 이미 여기에 있던 것과 동일한 QR 코드가 있는 이미지를 클릭했습니다.

그런 다음 사이트에 달려 있습니다. 자동으로 사진이나 그림을 자신에게 업로드한 다음 즉시 인식하여 결과를 보여줍니다.

준비가 된!.

QR 코드를 스캔해야 하는 이유는 무엇입니까?

여기에는 유용한 정보가 포함될 수 있습니다. 확률은 낮지만 있을 수 있습니다. 또한 QR코드는 많은 정보를 담은 거대한 간판을 붙이는 것이 아니라, 작은 QR코드를 사용하여 모든 사람들이 휴대전화로 전시회에 대한 정보를 읽을 수 있는 기회를 주기 위해 박물관에서 자주 사용됩니다. 모든 것이 간단하고 편리합니다. 이것이 Denso Wave가 그것들을 발명한 이유입니다.

QR 코드는 훌륭한 주식 도구입니다. 예를 들어 할인을 받기 위해 판매자에게 보여야 하는 코드가 포함될 수 있습니다. 응용 프로그램은 엄청납니다. 즐기다!



관련 기사: