Tôi muốn trích xuất ngày một tệp jpg được tạo. Java có phương thức lastModified cho đối tượng File, nhưng dường như không hỗ trợ cho việc trích xuất ngày tạo ra từ tệp. Tôi tin rằng thông tin được lưu trữ trong tệp như ngày tôi thấy khi tôi di chuột qua tệp trong Win XP khác với những gì tôi có thể nhận được bằng cách sử dụng JNI với "dir/TC" trên tệp trong DOS.Cách lấy ảnh ngày được tạo trong java
Trả lời
Ngày được lưu trữ trong dữ liệu EXIF trong jpeg. Có một số java library và một số viewer in java có thể hữu ích.
Có thể bạn cần một thứ gì đó để truy cập dữ liệu exif. Google đề xuất this library.
tôi sử dụng thư viện siêu dữ liệu này: http://www.drewnoakes.com/code/exif/
vẻ làm việc khá tốt, mặc dù nhớ rằng không phải tất cả các hình ảnh JPEG có thông tin này, vì vậy nó không thể là 100% fool-proof.
Nếu siêu dữ liệu EXIF không chứa ngày tạo, thì có thể bạn sẽ phải thực hiện với LastUpdated của Java - trừ khi bạn muốn sử dụng Runtime.exec (...) và sử dụng các chức năng hệ thống để tìm hiểu (Tôi sẽ không đề nghị điều này, mặc dù!)
Yeah, nó làm việc cho một số hình ảnh của tôi và không hoạt động cho dữ liệu hình ảnh được lưu trữ trong cơ sở dữ liệu của chúng tôi. –
Đoạn mã ví dụ dưới đây yêu cầu người dùng cho một đường dẫn tập tin và sau đó kết quả đầu ra ngày tạo và thời gian:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(final String[] args) {
try {
// get runtime environment and execute child process
Runtime systemShell = Runtime.getRuntime();
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter filename: ");
String fname=(String)br1.readLine();
Process output = systemShell.exec("cmd /c dir /a "+fname);
// open reader to get output from process
BufferedReader br = new BufferedReader (new InputStreamReader(output.getInputStream()));
String out="";
String line = null;
int step=1;
while((line = br.readLine()) != null)
{
if(step==6)
{
out=line;
}
step++;
} // display process output
try{
out=out.replaceAll(" ","");
System.out.println("CreationDate: "+out.substring(0,10));
System.out.println("CreationTime: "+out.substring(10,15));
}
catch(StringIndexOutOfBoundsException se)
{
System.out.println("File not found");
}
}
catch (IOException ioe){ System.err.println(ioe); }
catch (Throwable t) { t.printStackTrace();}
}
}
Cảm ơn đoạn mã, nhưng tôi thực sự cần lấy ngày từ siêu dữ liệu hình ảnh , không phải từ hệ thống tệp. – user16029
Điều này cũng chỉ hoạt động với Windows – ScrappyDev
- 1. Lấy ngày Chụp ảnh
- 2. Cách lấy tên của ngày trong đối tượng java sql.Timestamp?
- 3. Cách lấy dpi của ảnh (Java)
- 4. Lấy số ngày trong tháng hiện tại trong Java
- 5. Cách lấy ngày trong tuần từ số ngày trong Javascript?
- 6. Tạo và vẽ hình ảnh lớn (được đệm) trong Java
- 7. Cách lấy ngày tạo tệp của một tệp?
- 8. Cách lấy tên ngày trong tuần từ một ngày?
- 9. Cách lấy Tên hình ảnh được sử dụng trong UIImage?
- 10. Lấy "unixtime" trong Java
- 11. Cách tạo hình ảnh góc tròn trong Java
- 12. Lấy Tên Ngày trong PHP
- 13. PHP: làm cách nào để có được ngày tạo tệp?
- 14. Làm cách nào để lấy tệp có ngày sửa đổi mới nhất trong Java?
- 15. Cách lấy thời gian hệ thống trong Java mà không cần tạo một Date mới
- 16. Cách lấy tập hợp biến số ngày gần đây nhất trong java
- 17. Thêm ngày vào một ngày trong Java
- 18. Có cách nào để tạo một hình ảnh Gif từ nhiều hình ảnh trong Java không?
- 19. Lấy ngày cho ngày hiện tại trong PHP
- 20. Mảng ngày tháng trong Java
- 21. cách lấy ngày 12 giờ từ DateTime
- 22. Cách lấy ngày từ jQuery UI datepicker
- 23. Cách tạo ảnh động trong ListView khi được nhấp?
- 24. Cách tốt nhất để tạo ảnh cắt dán (bằng Java)
- 25. Cách lấy tên ngày từ một ngày đã chọn?
- 26. Cách lấy các hình ảnh đơn lẻ của một phim mp4 trong Java
- 27. Lấy ngày tạo Facebook của một cấu hình
- 28. Cách lấy giá trị nguyên của ngày trong tuần
- 29. Cách lấy tên ngày hiện tại bằng cách sử dụng ngày cụ thể trong Android?
- 30. Lấy Năm/Tháng/Ngày từ một ngày giờ trong php?
Tuyệt vời! Cảm ơn tất cả các ý kiến hữu ích! Tôi tin rằng tôi sẽ sử dụng thư viện tại drewnoakes.com. – user16029
Định dạng tệp hình ảnh có thể thay đổi (chính thức Exif, ** không phải EXIF ** theo thông số kỹ thuật JEIDA/JEITA/CIPA) là một tiêu chuẩn ... –