Skip to content

Commit a5197ea

Browse files
authored
#7 Fix preview configuration (#8)
* #7 Fix preview configuration * #7 Add scale method enum * #7 Review fixes * #7 Review fixes 2
1 parent 09cfa4c commit a5197ea

File tree

7 files changed

+31
-8
lines changed

7 files changed

+31
-8
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ repositories {
1010
}
1111

1212
// Append dependency
13-
implementation("com.icerockdev:storage-service:0.3.0")
13+
implementation("com.icerockdev:storage-service:0.4.0")
1414
````
1515

1616
## Library usage

storage-service/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ apply(plugin = "java")
1212
apply(plugin = "kotlin")
1313

1414
group = "com.icerockdev"
15-
version = "0.3.0"
15+
version = "0.4.0"
1616

1717
val sourcesJar by tasks.registering(Jar::class) {
1818
classifier = "sources"

storage-service/src/main/kotlin/com/icerockdev/service/storage/preview/AbstractPreview.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ abstract class AbstractPreview(
1111
val width: Int?,
1212
val height: Int?
1313
) {
14-
abstract val scaleMethod: ScaleMethod
14+
abstract val scaleMethod: PreviewScaleMethod
1515
var prefix = "${width ?: "n"}x${height ?: "n"}"
1616
var imageProcessor: AbstractPreview.(imageBytes: ByteArray) -> ByteArray = AbstractPreview::boundImage
1717

storage-service/src/main/kotlin/com/icerockdev/service/storage/preview/JpegPreviewImpl.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
package com.icerockdev.service.storage.preview
66

7-
import com.sksamuel.scrimage.ScaleMethod
87
import com.sksamuel.scrimage.nio.ImageWriter
98
import com.sksamuel.scrimage.nio.JpegWriter
109

@@ -13,7 +12,7 @@ class JpegPreviewImpl(
1312
height: Int?,
1413
private val compression: Int = 80,
1514
private val progressive: Boolean = false,
16-
override val scaleMethod: ScaleMethod = ScaleMethod.Bicubic
15+
override val scaleMethod: PreviewScaleMethod = PreviewScaleMethod.Bicubic
1716
) : AbstractPreview(width, height) {
1817

1918
init {

storage-service/src/main/kotlin/com/icerockdev/service/storage/preview/PngPreviewImpl.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44

55
package com.icerockdev.service.storage.preview
66

7-
import com.sksamuel.scrimage.ScaleMethod
87
import com.sksamuel.scrimage.nio.ImageWriter
98
import com.sksamuel.scrimage.nio.PngWriter
109

1110
class PngPreviewImpl(
1211
width: Int?,
1312
height: Int?,
1413
private val compression: Int = 9, // between 0 and 9, 9 - max compression
15-
override val scaleMethod: ScaleMethod = ScaleMethod.Bicubic
14+
override val scaleMethod: PreviewScaleMethod = PreviewScaleMethod.Bicubic
1615
) : AbstractPreview(width, height) {
1716

1817
init {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright 2020 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package com.icerockdev.service.storage.preview
6+
7+
import com.sksamuel.scrimage.ScaleMethod
8+
9+
enum class PreviewScaleMethod {
10+
FastScale,
11+
Lanczos3,
12+
BSpline,
13+
Bilinear,
14+
Bicubic;
15+
16+
internal fun getScale(): ScaleMethod {
17+
return when(this) {
18+
FastScale -> ScaleMethod.FastScale
19+
Lanczos3 -> ScaleMethod.Lanczos3
20+
BSpline -> ScaleMethod.BSpline
21+
Bilinear -> ScaleMethod.Bilinear
22+
Bicubic -> ScaleMethod.Bicubic
23+
}
24+
}
25+
}

storage-service/src/main/kotlin/com/icerockdev/service/storage/preview/PreviewUtils.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ fun loadImage(imageByteArray: ByteArray): ImmutableImage {
1818
* TODO: make more helpers
1919
*/
2020
fun AbstractPreview.boundImage(imageBytes: ByteArray): ByteArray {
21-
return loadImage(imageBytes).bound(getWidthOrMax(), getHeightOrMax(), scaleMethod).bytes(getWriter())
21+
return loadImage(imageBytes).bound(getWidthOrMax(), getHeightOrMax(), scaleMethod.getScale()).bytes(getWriter())
2222
}

0 commit comments

Comments
 (0)