2008-10-28 28 views
5

Tôi đang cố chụp ảnh trên điện thoại Nokia cao cấp (N95). Camera nội bộ của điện thoại là rất tốt (4 megapixel) nhưng trong j2me tôi chỉ dường như có thể nhận được tối đa là 1360x1020 hình ảnh ra ngoài. Tôi đã vẽ phần lớn từ ví dụ này http://developers.sun.com/mobility/midp/articles/picture/Truy cập máy ảnh có độ phân giải đầy đủ trong j2me

Điều tôi đã làm là bắt đầu với 640x480 và tăng chiều rộng và chiều cao lên 80 và 60, tương ứng cho đến khi không thành công. Các dòng mã là:

jpg = mVideoControl.getSnapshot ("encoding = jpeg & quality = 100 & width =" + chiều rộng + "& height =" + chiều cao);

Vì vậy, hai vấn đề là: 1. Điện thoại sẽ ném ngoại lệ khi nhận được hình ảnh lớn hơn 1360x1020. 2. Hình ảnh có độ phân giải cao hơn dường như chỉ là các phiên bản được làm phẳng của các hình nhỏ hơn. Ví dụ. Khi tôi lấy một hình ảnh 640x480 và tăng nó trong photoshop tôi không thể nói sự khác biệt giữa cái này và cái được cho là 1360x1020.

Đây có phải là giới hạn của j2me trên điện thoại không? Nếu có ai biết cách nào để có được độ phân giải cao hơn trong ứng dụng j2me và/hoặc cách truy cập máy ảnh gốc từ bên trong ứng dụng khác?

Trả lời

6

explanation này trên Nokia diễn đàn có thể giúp bạn.

Nó nói rằng "Kích thước hình ảnh tối đa có thể chụp được tùy thuộc vào định dạng hình ảnh đã chọn, tùy chọn mã hóa và bộ nhớ heap miễn phí có sẵn".

"Nó là như vậy, mạnh mẽ adviced rằng hình ảnh ít nhất lớn hơn (lớn hơn 1mpix) được chụp như hình ảnh JPEG và trong một kích thước hình ảnh phổ biến (ví dụ 1600x1200 cho 2mpix một vân vân). Hỗ trợ các kích thước hình ảnh phổ biến phụ thuộc vào phiên bản sản phẩm và nền tảng. "

Vì vậy, tôi khuyên bạn nên thử một số thử nghiệm 1. với 1600x1200, 1024x768 và bất kỳ độ phân giải hình ảnh nào mà hướng dẫn N95 của bạn đề cập đến 2. với BMP và PNG.

Dù sao, dựa trên kinh nghiệm trước đây của tôi (có thể đã lỗi thời), việc triển khai j2me có đầy đủ các lỗi, vì vậy có thể không có giải pháp làm việc cho vấn đề của bạn.

1

'Chất lượng' của ảnh JPEG (Theo cách giải thích bởi mã) không liên quan đến độ phân giải. Thay vào đó là làm thế nào để nén hình ảnh. Hình ảnh 640x480 với chất lượng 100 sẽ nổi bật hơn so với hình ảnh 640x480 ở mức 50, nhưng sẽ sử dụng nhiều dung lượng lưu trữ hơn.

Hãy thử điều này thay vì:

jpg = mVideoControl.getSnapshot("encoding=jpeg&quality=100&width=2048&height=1536"); 
+0

Cảm ơn sự giúp đỡ, nhưng điều này tạo ra một vấn đề khác (xem chỉnh sửa). – Cory

3

Độ phân giải máy ảnh của bạn là nguyên bản: 2582 x 1944. Hãy thử chụp ở đó để xem cách thực hiện.

Nơi này: http://developers.sun.com/mobility/midp/articles/picture/index.html

Mentions việc sử dụng:

byte[] raw = mVideoControl.getSnapshot(null); 
Image image = Image.createImage(raw, 0, raw.length); 

Việc sử dụng các nguyên liệu có vẻ thú vị, để có được độ phân giải gốc.

Các vấn đề liên quan