Статьи

Совет: используйте AS3, чтобы получить данные Exif из изображения JPG

Exif, или Exchangeable формат файла изображения — это спецификация для форматов изображения, используемых цифровыми камерами и сканерами. Он также используется для хранения метаданных, таких как модель камеры, тип, автор и т. Д. Научитесь отображать метаданные Exif в своем приложении, следуя этому краткому совету.


Мы будем использовать отличную библиотеку для загрузки и анализа информации Exif файла JPG; затем данные будут отображены в динамическом текстовом поле. Вы можете скачать библиотеку с сайта разработчика .


Запустите Flash и создайте новый Flash-документ, установите размер сцены 320×480 пикселей и частоту кадров 24 кадра в секунду.


Это интерфейс, который мы будем использовать; ничего особенного, просто TextField в сцене с именем infoTF . Изображение будет динамически загружено с использованием ActionScript.


Создайте новый класс ActionScript (Cmd + N), сохраните файл как Main.as и напишите следующие строки. Пожалуйста, прочитайте комментарии в коде, чтобы полностью понять поведение класса.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package
{
    import flash.display.Sprite;
    import jp.shichiseki.exif.*;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.display.Loader;
 
    public class Main extends Sprite
    {
        /* An instance of the Exif Loader */
        private var loader:ExifLoader = new ExifLoader();
 
        public function Main():void
        {
            /* Loads the image and adds a listener to run a function when complete */
            loader.addEventListener(Event.COMPLETE, onComplete);
            loader.load(new URLRequest(‘img.jpg’));
        }
 
        private function onComplete(e:Event):void
        {
            /* Add the image to stage */
            loader.scaleX = 0.08;//Scale original image as it is 4000+px wide
            loader.scaleY = 0.08;
            loader.x = 195;
            loader.y = 130;
            addChild(loader);
             
            /* Check the available exif data and display it */
            if (loader.exif.ifds.primary)
            {
                displayIFD(loader.exif.ifds.primary);
            }
            if (loader.exif.ifds.exif)
            {
                displayIFD(loader.exif.ifds.exif);
            }
            if (loader.exif.ifds.gps)
            {
                displayIFD(loader.exif.ifds.gps);
            }
            if (loader.exif.ifds.interoperability)
            {
                displayIFD(loader.exif.ifds.interoperability);
            }
            if (loader.exif.ifds.thumbnail)
            {
                displayIFD(loader.exif.ifds.thumbnail);
            }
        }
 
        private function displayIFD(ifd:IFD):void
        {
            /* Adds the read data to the textfield in stage */
            for (var entry:String in ifd)
            {
                infoTF.appendText(entry + «: » + ifd[entry] + ‘\n’);
            }
        }
    }
}

Не забудьте добавить имя класса в поле « Класс» в разделе « Публикация » на панели « Свойства» .


Используйте эту библиотеку для доступа к метаданным в вашем JPG-файле. Помните, что некоторые графические редакторы удаляют данные при сжатии, и в этом случае проигрыватель выдает ошибку.

Надеюсь, вам понравился этот Quick Tip, спасибо за чтение!