1

フォルダに画像があります。手動で画像にタグを追加しました。画像を読み込んでタグを表示したい。

画像メタデータを取得するために、チュートリアルを使用しましたhttp://johnbokma.com/java/obtaining-image-metadata.html

xmlが表示されますが、このxmlにはタグが含まれていません。xmlの例:

Format name: javax_imageio_jpeg_image_1.0
<javax_imageio_jpeg_image_1.0>
    <JPEGvariety/>
    <markerSequence>
        <unknown MarkerTag="225"/>
        <unknown MarkerTag="225"/>
        <dqt>
            <dqtable elementPrecision="0" qtableId="0"/>
        </dqt>
        <dqt>
            <dqtable elementPrecision="0" qtableId="1"/>
        </dqt>
        <sof process="0" samplePrecision="8" numLines="3000" samplesPerLine="4000" numFrameComponents="3">
            <componentSpec componentId="1" HsamplingFactor="2" VsamplingFactor="1" QtableSelector="0"/>
            <componentSpec componentId="2" HsamplingFactor="1" VsamplingFactor="1" QtableSelector="1"/>
            <componentSpec componentId="3" HsamplingFactor="1" VsamplingFactor="1" QtableSelector="1"/>
        </sof>
        <dht>
            <dhtable class="0" htableId="0"/>
        </dht>
        <dht>
            <dhtable class="1" htableId="0"/>
        </dht>
        <dht>
            <dhtable class="0" htableId="1"/>
        </dht>
        <dht>
            <dhtable class="1" htableId="1"/>
        </dht>
        <sos numScanComponents="3" startSpectralSelection="0" endSpectralSelection="63" approxHigh="0" approxLow="0">
            <scanComponentSpec componentSelector="1" dcHuffTable="0" acHuffTable="0"/>
            <scanComponentSpec componentSelector="2" dcHuffTable="1" acHuffTable="1"/>
            <scanComponentSpec componentSelector="3" dcHuffTable="1" acHuffTable="1"/>
        </sos>
    </markerSequence>
</javax_imageio_jpeg_image_1.0>
Format name: javax_imageio_1.0
<javax_imageio_1.0>
    <Chroma>
        <ColorSpaceType name="YCbCr"/>
        <NumChannels value="3"/>
    </Chroma>
    <Compression>
        <CompressionTypeName value="JPEG"/>
        <Lossless value="FALSE"/>
        <NumProgressiveScans value="1"/>
    </Compression>
    <Dimension>
        <ImageOrientation value="normal"/>
    </Dimension>
</javax_imageio_1.0>
4

1 に答える 1

2

画像に「タグ」を追加するためにどのソフトウェアを使用しましたか?それがWindowsエクスプローラーだったとしましょう。その場合、「タグ」はおそらく次の両方のフィールドの画像に保存されます。XMP
:Subject
XMP:LastKeywordXMP(具体的には、要素MicrosoftPhoto:LastKeywordXMP)

ImageIO.getImageReaders()で取得するリーダーのgetImageMetadataメソッドは、デフォルトでXMPデータを返すとは思いません。(これは、参照するコードが使用しているものです)。

必要なことを実行するオープンソースライブラリまたはコードを見つけることをお勧めします。http://commons.apache.org/imaging/http://java2s.com/Open-Source/Java/Image/metadata-extractor/com/drew/metadata/など、かなりの数があるようです。xmp / XmpReader.java.htm(注:これを使用したことはありません)。

他のすべてが失敗した場合は、優れたExifToolを使用できます

これはコマンドラインツールですが、使い方は簡単です。たとえば、タグを抽出するには:exiftool -XMP:Subject test.jpg

于 2012-05-04T08:40:38.970 に答える