Skip to content

Commit

Permalink
Started to work on GeoTiff hex
Browse files Browse the repository at this point in the history
  • Loading branch information
StefanOltmann committed Apr 1, 2024
1 parent e432778 commit e2fc968
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 12 deletions.
70 changes: 60 additions & 10 deletions app/src/commonMain/kotlin/HtmlGenerator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import com.ashampoo.kim.format.png.PngImageParser
import com.ashampoo.kim.format.tiff.TiffDirectory
import com.ashampoo.kim.format.tiff.TiffReader
import com.ashampoo.kim.format.tiff.constant.ExifTag
import com.ashampoo.kim.format.tiff.constant.GeoTiffTag
import com.ashampoo.kim.format.tiff.constant.TiffConstants
import com.ashampoo.kim.format.webp.WebPChunkType
import com.ashampoo.kim.format.webp.WebPConstants
Expand Down Expand Up @@ -612,19 +613,68 @@ private fun createTiffSlices(
if (skipMakerNoteValue)
return@let

val isGeoTiffDirectory =
GeoTiffTag.EXIF_TAG_GEO_KEY_DIRECTORY_TAG == field.tagInfo

val adjValueOffset = valueOffset + startPosition

slices.add(
LabeledSlice(
range = adjValueOffset until adjValueOffset + field.valueBytes.size,
label = "${field.tagInfo?.name ?: field.tagFormatted} value".escapeSpaces(),
/* Skip very long value fields like Maker Note or XMP (in TIFF) */
snipAfterLineCount = 8,
separatorLineType = SeparatorLineType.NONE,
highlightId = highlightId,
highlightLabel = false
if (isGeoTiffDirectory) {

slices.add(
LabeledSlice(
range = adjValueOffset until adjValueOffset + 2,
label = "GeoTiff" + SPACE + "KeyDirectoryVersion",
separatorLineType = SeparatorLineType.NONE
)
)
)

slices.add(
LabeledSlice(
range = adjValueOffset + 2 until adjValueOffset + 4,
label = "GeoTiff" + SPACE + "KeyRevision",
separatorLineType = SeparatorLineType.NONE
)
)

slices.add(
LabeledSlice(
range = adjValueOffset + 4 until adjValueOffset + 6,
label = "GeoTiff" + SPACE + "MinorRevision",
separatorLineType = SeparatorLineType.NONE
)
)

slices.add(
LabeledSlice(
range = adjValueOffset + 6 until adjValueOffset + 8,
label = "GeoTiff" + SPACE + "NumberOfKeys",
separatorLineType = SeparatorLineType.NONE
)
)

// TODO Explain the values
slices.add(
LabeledSlice(
range = adjValueOffset + 8 until adjValueOffset + field.valueBytes.size,
label = "GeoTiff" + SPACE + "values",
separatorLineType = SeparatorLineType.NONE
)
)

} else {

slices.add(
LabeledSlice(
range = adjValueOffset until adjValueOffset + field.valueBytes.size,
label = "${field.tagInfo?.name ?: field.tagFormatted} value".escapeSpaces(),
/* Skip very long value fields like Maker Note or XMP (in TIFF) */
snipAfterLineCount = 8,
separatorLineType = SeparatorLineType.NONE,
highlightId = highlightId,
highlightLabel = false
)
)
}
}
}

Expand Down
8 changes: 6 additions & 2 deletions app/src/jvmTest/resources/photo_8_hex.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,12 @@
00000346&nbsp;|&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;|&nbsp;<span class="IFD0-19">................</span>&nbsp;|&nbsp;ModelTiepointTag&nbsp;value<br>
00000362&nbsp;|&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;&nbsp;45&nbsp;C8&nbsp;4C&nbsp;02&nbsp;D5&nbsp;D4&nbsp;21&nbsp;40&nbsp;|&nbsp;<span class="IFD0-19">........E.L...!@</span>&nbsp;|&nbsp;<br>
00000378&nbsp;|&nbsp;11&nbsp;FB&nbsp;9E&nbsp;4B&nbsp;50&nbsp;76&nbsp;48&nbsp;40&nbsp;&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;|&nbsp;<span class="IFD0-19">...KPvH@........</span>&nbsp;|&nbsp;<br>
00000394&nbsp;|&nbsp;01&nbsp;00&nbsp;00&nbsp;00&nbsp;02&nbsp;00&nbsp;03&nbsp;00&nbsp;&nbsp;00&nbsp;04&nbsp;00&nbsp;00&nbsp;01&nbsp;00&nbsp;02&nbsp;00&nbsp;|&nbsp;<span class="IFD0-21">................</span>&nbsp;|&nbsp;GeoKeyDirectoryTag&nbsp;value<br>
00000410&nbsp;|&nbsp;00&nbsp;08&nbsp;00&nbsp;00&nbsp;01&nbsp;00&nbsp;E6&nbsp;10&nbsp;&nbsp;01&nbsp;04&nbsp;00&nbsp;00&nbsp;01&nbsp;00&nbsp;02&nbsp;00&nbsp;|&nbsp;<span class="IFD0-21">................</span>&nbsp;|&nbsp;<br>
00000394&nbsp;|&nbsp;01&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;GeoTiff&nbsp;KeyDirectoryVersion<br>
00000396&nbsp;|&nbsp;00&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;GeoTiff&nbsp;KeyRevision<br>
00000398&nbsp;|&nbsp;02&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;GeoTiff&nbsp;MinorRevision<br>
00000400&nbsp;|&nbsp;03&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;GeoTiff&nbsp;NumberOfKeys<br>
00000402&nbsp;|&nbsp;00&nbsp;04&nbsp;00&nbsp;00&nbsp;01&nbsp;00&nbsp;02&nbsp;00&nbsp;&nbsp;00&nbsp;08&nbsp;00&nbsp;00&nbsp;01&nbsp;00&nbsp;E6&nbsp;10&nbsp;|&nbsp;................&nbsp;|&nbsp;GeoTiff&nbsp;values<br>
00000418&nbsp;|&nbsp;01&nbsp;04&nbsp;00&nbsp;00&nbsp;01&nbsp;00&nbsp;02&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;........&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br>
<hr style="height:2px;margin:1px;padding:0;border-width:0;color:#dddddd;background-color:#dddddd">
00000426&nbsp;|&nbsp;01&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;ExifIFD&nbsp;[1&nbsp;entries]<br>
00000428&nbsp;|&nbsp;01&nbsp;A0&nbsp;03&nbsp;00&nbsp;01&nbsp;00&nbsp;00&nbsp;00&nbsp;&nbsp;01&nbsp;00&nbsp;00&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;............&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<span title="1">ExifIFD-00&nbsp;0xa001&nbsp;ColorSpace</span><br>
Expand Down

0 comments on commit e2fc968

Please sign in to comment.