यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
कैमरा और बारकोड
एक फ़ोटो कैप्चर करना — Camera.shot()
Camera cam = new Camera();
cam.cameraType = Camera.CameraType.PICKER; // ⚠️ कोई default नहीं — हमेशा परिभाषित करें
cam.captureMode = Camera.Preview.PHOTO;
new Thread(() -> {
String caminho = cam.shot(); // फ़ाइल का पथ, या रद्द होने पर null
if (caminho == null) return;
Component.onUI(() -> {
try { imageView.image(new Image(caminho)); Component.repaint(); }
catch (Exception e) { Debug.log("erro: " + e); }
});
}).start();
⚠️
click()अब मौजूद नहीं है — कैप्चर का तरीकाshot()है (पथ के साथStringलौटाता है या उपयोगकर्ता के रद्द करने परnull)।
कॉन्फ़िगरेशन
| फ़ील्ड | मान |
|---|---|
cameraType |
DEFAULT (आंतरिक कैमरा) · PICKER (PhotoPicker) · GALLERY (गैलरी) — कोई default नहीं |
captureMode |
Preview.PHOTO · MUTED_VIDEO · AUDIO_VIDEO |
videoQuality |
AVQuality.HIGH/MEDIUM/LOW |
resolutionWidth/Height (स्टैटिक) |
रिज़ॉल्यूशन (हमेशा LANDSCAPE में) |
बारकोड पढ़ना — CameraBarcode.readBarcode(Image)
पहले से कैप्चर की गई इमेज से 1D और 2D (QR) पढ़ता है (ZXing के ज़रिए):
Image img = new Image(caminho);
com.google.zxing.Result r = CameraBarcode.readBarcode(img); // कोड न मिलने पर null
if (r != null) {
String codigo = r.getText();
Debug.log("Código: " + codigo);
}
वास्तविक सीमाएँ
Camera.shot()नेटिव UI खोलता है — इसे पेंट थ्रेड के बाहर कॉल करें औरonUI(...)के साथ लौटें।CameraBarcode.readBarcodeथ्रेड-सेफ़ नहीं है — इसे एक साथ कई थ्रेड्स से कॉल न करें।nullरिटर्न सामान्य हैं (रद्द किया / कोड नहीं मिला) — हमेशा जाँचें।- Mac ARM पर कैप्चर
nullलौटा सकता है (प्लेटफ़ॉर्म सीमा)।
अच्छी प्रथाएँ
- हमेशा
cameraTypeपरिभाषित करें (कोई default नहीं है)। shot()औरreadBarcode(...)केnullरिटर्न को संभालें।- सिर्फ़ गैलरी से चुनने के लिए, PhotoPicker उपयोग करें।
आम गलतियाँ
shot()के बजायclick()कॉल करना (मौजूद नहीं है)।cameraTypeपरिभाषित न करना।readBarcodeको समवर्ती रूप से कॉल करना (थ्रेड-सेफ़ नहीं है)।
यह भी देखें
क्या यह पृष्ठ उपयोगी था?प्रतिक्रिया के लिए धन्यवाद!