This is an automated email from the ASF dual-hosted git repository.

imbruced pushed a commit to branch feature/geopackage-reader
in repository https://gitbox.apache.org/repos/asf/sedona.git


The following commit(s) were added to refs/heads/feature/geopackage-reader by 
this push:
     new f03527d28 Add other missing data types.
f03527d28 is described below

commit f03527d2879716fa57c484a1685da4b1125dd3d5
Author: pawelkocinski <[email protected]>
AuthorDate: Tue Sep 24 18:51:01 2024 +0200

    Add other missing data types.
---
 .../connection/GeoPackageConnectionManager.scala          |  3 +--
 .../sql/datasources/geopackage/transform/Image.scala      | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git 
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
 
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
index ba89e2a24..5d068e702 100644
--- 
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
+++ 
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
@@ -139,8 +139,7 @@ object GeoPackageConnectionManager {
         srsID = srsID,
         zoomLevelMetadata = getZoomLevelData,
         tileRowMetadata = null)
-    }
-    finally {
+    } finally {
       rs.close()
       closeStatement(statement)
     }
diff --git 
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
 
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
index e8123c79d..c2c23e3c6 100644
--- 
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
+++ 
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
@@ -30,6 +30,11 @@ import javax.imageio.ImageIO
 
 object Image {
 
+  private val WEBP_HEX = "52494646"
+  private val PNG_HEX = "89504E470D0A1A0A"
+  private val TIFF_HEX = Seq("49492A00", "4D4D002A")
+  private val JPEG_HEX = Seq("FFD8FFE0", "FFD8FFE1", "FFD8FFE8")
+
   def readImageFile(
       byteArray: Array[Byte],
       tileMetadata: TileMetadata,
@@ -55,23 +60,23 @@ object Image {
     val magicBytes = byteArray.take(12)
     val magicHex = bytesToHex(magicBytes)
 
-    if (magicHex.startsWith("524946")) {
+    if (magicHex.startsWith(WEBP_HEX)) {
       val webpCheck = new String(byteArray.slice(8, 12))
       if (webpCheck == "WEBP") {
         return ImageFileFormat.WEBP
       }
     }
 
-    if (magicHex.startsWith("89504E470D0A1A0A")) {
+    if (magicHex.startsWith(PNG_HEX)) {
       return ImageFileFormat.PNG
     }
 
-    if (magicHex.startsWith("FFD8FFE0") || magicHex.startsWith("FFD8FFE1") || 
magicHex.startsWith(
-        "FFD8FFE8")) {
+    if (JPEG_HEX.exists(magicHex.startsWith)) {
       return ImageFileFormat.JPEG
     }
 
-    if (magicHex.startsWith("49492A00") || magicHex.startsWith("4D4D002A")) {
+
+    if (TIFF_HEX.exists(magicHex.startsWith)) {
       return ImageFileFormat.TIFF
     }
 

Reply via email to