{"id":21689419,"url":"https://github.com/masashi-sutou/codescanner","last_synced_at":"2025-04-12T09:34:59.392Z","repository":{"id":56906203,"uuid":"82377930","full_name":"masashi-sutou/CodeScanner","owner":"masashi-sutou","description":"CodeScanner is easy to scan a barcode or QR code.","archived":false,"fork":false,"pushed_at":"2017-09-21T17:35:02.000Z","size":42,"stargazers_count":2,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T06:01:28.053Z","etag":null,"topics":["barcode","camera","qr-code","scanner"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masashi-sutou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-18T10:06:56.000Z","updated_at":"2025-02-24T12:00:33.000Z","dependencies_parsed_at":"2022-08-20T21:50:24.754Z","dependency_job_id":null,"html_url":"https://github.com/masashi-sutou/CodeScanner","commit_stats":null,"previous_names":["masashi-sutou/mscodescanner"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masashi-sutou%2FCodeScanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masashi-sutou%2FCodeScanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masashi-sutou%2FCodeScanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masashi-sutou%2FCodeScanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masashi-sutou","download_url":"https://codeload.github.com/masashi-sutou/CodeScanner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248546660,"owners_count":21122360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["barcode","camera","qr-code","scanner"],"created_at":"2024-11-25T17:26:01.931Z","updated_at":"2025-04-12T09:34:59.364Z","avatar_url":"https://github.com/masashi-sutou.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"CodeScanner\n====\n\n## Overview\n- Generate code\n  - QR\n  - Code128Barcode\n- Detect photo\n  - QR\n- Detect by camera\n  - QR\n  - Code128Barcode\n\n## Requirement\n- Xcode 8 or later\n- Swift 3 or later\n- iOS 8.0 or later\n\n## Usage\n#### Generate code\n- QR\n```Swift\nself.imageView.image = Code.generateQRCode(text: \"message\")\n```\n\n- Code128Barcode\n```Swift\nself.imageView.image = Code.generate128Barcode(text: \"message\")\n```\n\n#### Detect photo\n- QR\n```Swift\n// MARK: UINavigationControllerDelegate, UIImagePickerControllerDelegate\n\nfunc imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {\n\n    if let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {\n\n        let messages: [String] = Code.detectQRCodes(image: selectedImage)\n        if messages.count \u003e 0 {\n            self.textView.text = messages.first\n        } else {\n            self.textView.text = \"[Not Found QR Code in Photo]\"\n        }\n    }\n\n    dismiss(animated: true, completion: nil)\n}\n```\n\n#### Detect by camera\n- QR\n```Swift\nimport UIKit\nimport AVFoundation\nimport CodeScanner\n\nfinal class QRCodeDetectForCameraViewController: UIViewController {\n\n    private var scanner: CodeScanner!\n\n    override func viewDidLoad() {\n\n        super.viewDidLoad()\n\n        self.navigationItem.title = \"Detect QR code from Camera\"\n        self.view.backgroundColor = .groupTableViewBackground\n\n        self.scanner = CodeScanner(metadataObjectTypes: [AVMetadataObjectTypeQRCode], preview: self.view)\n    }\n\n    override func viewDidAppear(_ animated: Bool) {\n        super.viewDidAppear(animated)\n\n        CodeScanner.requestCameraPermission { (success) in\n            if success {\n                self.scanner.scan(resultOutputs: { (outputs) in\n                    print(outputs)\n                })\n            }\n        }\n    }\n}\n```\n\n- Code128Barcode\n```Swift\nimport UIKit\nimport AVFoundation\nimport CodeScanner\n\nfinal class BarcodeDetectForCameraViewController: UIViewController {\n\n    private var scanner: CodeScanner!\n\n    override func viewDidLoad() {\n\n        super.viewDidLoad()\n\n        self.navigationItem.title = \"Detect Barcode from Camera\"\n        self.view.backgroundColor = .groupTableViewBackground\n\n        self.scanner = CodeScanner(metadataObjectTypes: [AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeCode128Code], preview: self.view)\n    }\n\n    override func viewDidAppear(_ animated: Bool) {\n        super.viewDidAppear(animated)\n\n        CodeScanner.requestCameraPermission { (success) in\n            if success {\n                self.scanner.scan(resultOutputs: { (outputs) in\n\n                    if let output: String = outputs.first {\n\n                        if output.isJANLowerBarcode() {\n                            return\n                        }\n\n                        if let isbn = output.convartISBN() {\n                            self.scanner.stop()\n                            isbn.searchAamazon()\n                        }\n                    }\n                })\n            }\n        }\n    }\n}\n```\n\n## Installation\n#### [CocoaPods](https://cocoapods.org/)\nAdd the following line to your Podfile:\n```ruby\nuse_frameworks!\n\ntarget 'YOUR_TARGET_NAME' do\n  pod \"CodeScanner\"\nend\n```\n\n#### [Carthage](https://github.com/Carthage/Carthage)\nAdd the following line to your Cartfile:\n```ruby\ngithub \"masashi-sutou/CodeScanner\"\n```\n\n## Licence\nCodeScanner is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasashi-sutou%2Fcodescanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasashi-sutou%2Fcodescanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasashi-sutou%2Fcodescanner/lists"}