| 123456789101112131415161718192021222324252627282930313233343536 |
- package com.fdkankan.scene.util;
- import com.drew.imaging.ImageMetadataReader;
- import com.drew.metadata.Metadata;
- import com.drew.metadata.exif.ExifIFD0Directory;
- import javax.imageio.ImageIO;
- import java.awt.image.BufferedImage;
- import java.io.File;
- public class ImageUtil {
- public static boolean isFakePortrait(File file) throws Exception {
- // 1. 读像素尺寸
- BufferedImage img = ImageIO.read(file);
- int width = img.getWidth();
- int height = img.getHeight();
- // 2. 读 EXIF
- Metadata metadata = ImageMetadataReader.readMetadata(file);
- ExifIFD0Directory exif = metadata.getFirstDirectoryOfType(ExifIFD0Directory.class);
- boolean hasOrientation = false;
- if (exif != null && exif.containsTag(ExifIFD0Directory.TAG_ORIENTATION)) {
- hasOrientation = true;
- }
- // 3. 判定伪竖图
- return width > height && !hasOrientation;
- }
- public static void main(String[] args) throws Exception {
- System.out.println(isFakePortrait(new File("D:\\test-vips\\1.jpg")));
- }
- }
|