ورود

View Full Version : خواندن پروپرتی تصویر



mrb.developer
یک شنبه 11 تیر 1396, 11:05 صبح
سلام چطوری میتونم پروپرتی‌های یک تصویر مثل عنوان، نوع دوربین و ... رو بخونم

mrb.developer
دوشنبه 12 تیر 1396, 09:03 صبح
مشکل اینجاست UndefinedProperty


BufferedImage image = null;
try {
image = ImageIO.read(new File("d:\\tst.jpg"));
Object p=image.getProperty("description",null);


System.out.println(p);




} catch (IOException e) {
e.printStackTrace();
}


نمی‌دونم چیکارش کنم

mrb.developer
دوشنبه 12 تیر 1396, 10:01 صبح
کسی به این مشکل برنخورده

mrb.developer
سه شنبه 13 تیر 1396, 11:10 صبح
هیچکس نبود جواب بده؟

vahid-p
سه شنبه 13 تیر 1396, 22:16 عصر
تابع ImageIO.read خصیصه ها (Properties) رو نمی خونه.
در نتیجه اگر اطلاعات خاصی به جز تاریخ و حجم اینا خواستید باید از کتابخونه های مخصوص اینکار مثل Imagero استفاده کنید. یه جا این کتابخونه هم معرفی کرده بودند:
https://drewnoakes.com/code/exif/
یا
https://github.com/drewnoakes/metadata-extractor/

mrb.developer
چهارشنبه 14 تیر 1396, 08:01 صبح
تابع ImageIO.read خصیصه ها (Properties) رو نمی خونه.
در نتیجه اگر اطلاعات خاصی به جز تاریخ و حجم اینا خواستید باید از کتابخونه های مخصوص اینکار مثل Imagero استفاده کنید. یه جا این کتابخونه هم معرفی کرده بودند:
https://drewnoakes.com/code/exif/
یا
https://github.com/drewnoakes/metadata-extractor/

مشکل اینه که حجم و تاریخ رو هم نول بر میگردونه

vahid-p
پنج شنبه 15 تیر 1396, 02:18 صبح
خب من نگفتم برای حجم و تاریخ از این میتونید استفاده کنید. برای حجم و تاریخ می تونید از کد زیر استفاده کنید:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;

public class App {
public static void main(String[] args) throws IOException {
Path file = new File("/path/to/file.jpg").toPath();
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
System.out.println("size: " + attr.size());
}
}

mrb.developer
پنج شنبه 15 تیر 1396, 08:08 صبح
خب من نگفتم برای حجم و تاریخ از این میتونید استفاده کنید. برای حجم و تاریخ می تونید از کد زیر استفاده کنید:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;

public class App {
public static void main(String[] args) throws IOException {
Path file = new File("/path/to/file.jpg").toPath();
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
System.out.println("size: " + attr.size());
}
}

متشکر از جوابتون اینها رو قبلا استفاده کردم چیزی که من میخوام بر گرونن مدل دوربین و مارک دوربینه که جز پروپرتی‌های عکسه

vahid-p
پنج شنبه 15 تیر 1396, 10:16 صبح
خب این موضوع رو که تو پست اول گفتم. برای اون اطلاعات باید از کتابخونه هایی که معرفی کردم استفاده کنید. گفته بودم "تابع ImageIO.read خصیصه ها (Properties) رو نمی خونه.".
از کتابخونه Metadata extractor استفاده کردم، کد زیر که در سایت خودشون هم معرفی شده بود رو اجرا کردم:
import com.drew.imaging.ImageMetadataReader;
import com.drew.imaging.ImageProcessingException;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
import java.io.File;
import java.io.IOException;


public class Main {

public static void main(String[] args) throws ImageProcessingException, IOException {
File file=new File("/path/to/file.jpg");
Metadata metadata = ImageMetadataReader.readMetadata(file);

for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
System.out.format("[%s] - %s = %s\n",
directory.getName(), tag.getTagName(), tag.getDescription());
}
if (directory.hasErrors()) {
for (String error : directory.getErrors()) {
System.err.format("ERROR: %s", error);
}
}
}
}
}


و برای یک عکس اطلاعات زیر رو خروجی داد:


[JPEG] - Compression Type = Baseline
[JPEG] - Data Precision = 8 bits
[JPEG] - Image Height = 1920 pixels
[JPEG] - Image Width = 2560 pixels
[JPEG] - Number of Components = 3
[JPEG] - Component 1 = Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
[JPEG] - Component 2 = Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
[JPEG] - Component 3 = Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
[Exif IFD0] - Image Width = 2560 pixels
[Exif IFD0] - Image Height = 1920 pixels
[Exif IFD0] - Make = SAMSUNG
[Exif IFD0] - Model = GT-I8552
[Exif IFD0] - Orientation = Top, left side (Horizontal / normal)
[Exif IFD0] - X Resolution = 72 dots per inch
[Exif IFD0] - Y Resolution = 72 dots per inch
[Exif IFD0] - Resolution Unit = Inch
[Exif IFD0] - Software = I8552XXAMDB
[Exif IFD0] - Date/Time = 2015:02:24 10:13:01
[Exif IFD0] - YCbCr Positioning = Center of pixel array
[Exif SubIFD] - Exposure Time = 1/1520 sec
[Exif SubIFD] - F-Number = f/2.7
[Exif SubIFD] - Exposure Program = Aperture priority
[Exif SubIFD] - ISO Speed Ratings = 50
[Exif SubIFD] - Exif Version = 2.20
[Exif SubIFD] - Date/Time Original = 2015:02:24 10:13:01
[Exif SubIFD] - Date/Time Digitized = 2015:02:24 10:13:01
[Exif SubIFD] - Components Configuration = YCbCr
[Exif SubIFD] - Exposure Bias Value = 0 EV
[Exif SubIFD] - Max Aperture Value = f/2.7
[Exif SubIFD] - Metering Mode = Center weighted average
[Exif SubIFD] - Flash = Flash fired
[Exif SubIFD] - Focal Length = 3.4 mm
[Exif SubIFD] - User Comment = User comments
[Exif SubIFD] - FlashPix Version = 1.00
[Exif SubIFD] - Color Space = sRGB
[Exif SubIFD] - Exif Image Width = 2560 pixels
[Exif SubIFD] - Exif Image Height = 1920 pixels
[Exif SubIFD] - Exposure Mode = Auto exposure
[Exif SubIFD] - White Balance Mode = Auto white balance
[Exif SubIFD] - Scene Capture Type = Standard
[Samsung Makernote] - Maker Note Version = 1.00
[Samsung Makernote] - Device Type = Cell Phone
[Samsung Makernote] - Unknown tag (0x000c) = 0
[Samsung Makernote] - Unknown tag (0x0010) = 23/24613
[Samsung Makernote] - Unknown tag (0x0040) = 0
[Samsung Makernote] - Unknown tag (0x0050) = 1
[Samsung Makernote] - Face Detect = Off
[Interoperability] - Interoperability Index = Recommended Exif Interoperability Rules (ExifR98)
[Interoperability] - Interoperability Version = 1.00
[Exif Thumbnail] - Image Width = 320 pixels
[Exif Thumbnail] - Image Height = 240 pixels
[Exif Thumbnail] - Compression = JPEG (old-style)
[Exif Thumbnail] - Orientation = Top, left side (Horizontal / normal)
[Exif Thumbnail] - X Resolution = 72 dots per inch
[Exif Thumbnail] - Y Resolution = 72 dots per inch
[Exif Thumbnail] - Resolution Unit = Inch
[Exif Thumbnail] - Thumbnail Offset = 866 bytes
[Exif Thumbnail] - Thumbnail Length = 18151 bytes
[Huffman] - Number of Tables = 4 Huffman tables
[File] - File Name = file.jpg
[File] - File Size = 3280308 bytes
[File] - File Modified Date = Tue Feb 24 10:13:02 +03:30 2015

mrb.developer
پنج شنبه 15 تیر 1396, 11:34 صبح
متشکر حل شد
مشکل از من بود، من توی تگ‌ها دنبال چیزی مثل CameraMaker می‌گشتم که اینجا با تگ Make اومده بود و من دقت نمی‌کردم