From 50ed3d1aaa102b0c371c9c503f963244dfb5e6e0 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Thu, 23 Nov 2023 19:10:00 +0800 Subject: [PATCH] Update avatar-generator package --- .../api/controller/api/v1/AvatarController.kt | 2 + .../fatweb/api/handler/ExceptionHandler.kt | 2 +- .../api/service/api/v1/AvatarServiceImpl.kt | 68 ++++++++++--------- .../api/service/api/v1/IAvatarService.kt | 2 +- .../fatweb/api/FatWebApiApplicationTests.kt | 2 +- 5 files changed, 40 insertions(+), 36 deletions(-) diff --git a/src/main/kotlin/top/fatweb/api/controller/api/v1/AvatarController.kt b/src/main/kotlin/top/fatweb/api/controller/api/v1/AvatarController.kt index abea194..e42f486 100644 --- a/src/main/kotlin/top/fatweb/api/controller/api/v1/AvatarController.kt +++ b/src/main/kotlin/top/fatweb/api/controller/api/v1/AvatarController.kt @@ -57,9 +57,11 @@ class AvatarController( return avatarService.github(avatarGitHubParam) } +/* @Operation(summary = "8 Bit 头像") @GetMapping("/8bit", produces = [MediaType.IMAGE_PNG_VALUE]) fun eightBit(@PathVariable apiVersion: String, @Valid avatarEightBitParam: AvatarEightBitParam): ByteArray { return avatarService.eightBit(avatarEightBitParam) } +*/ } \ No newline at end of file diff --git a/src/main/kotlin/top/fatweb/api/handler/ExceptionHandler.kt b/src/main/kotlin/top/fatweb/api/handler/ExceptionHandler.kt index 1fcfdde..a73bb6e 100644 --- a/src/main/kotlin/top/fatweb/api/handler/ExceptionHandler.kt +++ b/src/main/kotlin/top/fatweb/api/handler/ExceptionHandler.kt @@ -3,7 +3,6 @@ package top.fatweb.api.handler import com.auth0.jwt.exceptions.JWTDecodeException import com.auth0.jwt.exceptions.SignatureVerificationException import com.auth0.jwt.exceptions.TokenExpiredException -import com.talanlabs.avatargenerator.AvatarException import org.slf4j.Logger import org.slf4j.LoggerFactory import org.springframework.dao.DuplicateKeyException @@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice import top.fatweb.api.entity.common.ResponseCode import top.fatweb.api.entity.common.ResponseResult import top.fatweb.api.exception.TokenHasExpiredException +import top.fatweb.avatargenerator.AvatarException /** * Exception handler diff --git a/src/main/kotlin/top/fatweb/api/service/api/v1/AvatarServiceImpl.kt b/src/main/kotlin/top/fatweb/api/service/api/v1/AvatarServiceImpl.kt index 57a0e6e..b35fd64 100644 --- a/src/main/kotlin/top/fatweb/api/service/api/v1/AvatarServiceImpl.kt +++ b/src/main/kotlin/top/fatweb/api/service/api/v1/AvatarServiceImpl.kt @@ -1,17 +1,15 @@ package top.fatweb.api.service.api.v1 -import com.talanlabs.avatargenerator.GitHubAvatar -import com.talanlabs.avatargenerator.IdenticonAvatar -import com.talanlabs.avatargenerator.SquareAvatar -import com.talanlabs.avatargenerator.TriangleAvatar -import com.talanlabs.avatargenerator.eightbit.EightBitAvatar -import com.talanlabs.avatargenerator.layers.backgrounds.ColorPaintBackgroundLayer import org.springframework.stereotype.Service import top.fatweb.api.param.api.v1.avatar.AvatarBaseParam -import top.fatweb.api.param.api.v1.avatar.AvatarEightBitParam import top.fatweb.api.param.api.v1.avatar.AvatarGitHubParam import top.fatweb.api.util.NumberUtil import top.fatweb.api.vo.api.v1.avatar.DefaultBase64Vo +import top.fatweb.avatargenerator.GitHubAvatar +import top.fatweb.avatargenerator.IdenticonAvatar +import top.fatweb.avatargenerator.SquareAvatar +import top.fatweb.avatargenerator.TriangleAvatar +import top.fatweb.avatargenerator.layer.background.ColorPaintBackgroundLayer import java.awt.Color import kotlin.io.encoding.Base64 import kotlin.io.encoding.ExperimentalEncodingApi @@ -30,7 +28,8 @@ class AvatarServiceImpl : IAvatarService { if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty()) TriangleAvatar.newAvatarBuilder() else TriangleAvatar.newAvatarBuilder( - *avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray()) + *avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray() + ) ).apply { avatarBaseParam?.size?.let { size(it, it) } avatarBaseParam?.margin?.let { margin(it) } @@ -46,7 +45,8 @@ class AvatarServiceImpl : IAvatarService { if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty()) SquareAvatar.newAvatarBuilder() else SquareAvatar.newAvatarBuilder( - *avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray()) + *avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray() + ) ).apply { avatarBaseParam?.size?.let { size(it, it) } avatarBaseParam?.margin?.let { margin(it) } @@ -86,31 +86,33 @@ class AvatarServiceImpl : IAvatarService { return avatar.createAsPngBytes(avatarGitHubParam?.seed ?: NumberUtil.getRandomLong()) } - override fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray { - val avatar = if (avatarEightBitParam?.gender?.equals("female") ?: false) { - EightBitAvatar.newFemaleAvatarBuilder().apply { - avatarEightBitParam?.size?.let { size(it, it) } - avatarEightBitParam?.margin?.let { margin(it) } - avatarEightBitParam?.padding?.let { padding(it) } - if (avatarEightBitParam != null && !avatarEightBitParam.colors.isNullOrEmpty()) { - color(decodeColor(avatarEightBitParam.colors!!.random())) - } - avatarEightBitParam?.background?.let { layers(ColorPaintBackgroundLayer(decodeColor(it))) } - }.build() - } else { - EightBitAvatar.newMaleAvatarBuilder().apply { - avatarEightBitParam?.size?.let { size(it, it) } - avatarEightBitParam?.margin?.let { margin(it) } - avatarEightBitParam?.padding?.let { padding(it) } - if (avatarEightBitParam != null && !avatarEightBitParam.colors.isNullOrEmpty()) { - color(decodeColor(avatarEightBitParam.colors!!.random())) - } - avatarEightBitParam?.background?.let { layers(ColorPaintBackgroundLayer(decodeColor(it))) } - }.build() - } + /* + override fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray { + val avatar = if (avatarEightBitParam?.gender?.equals("female") ?: false) { + EightBitAvatar.newFemaleAvatarBuilder().apply { + avatarEightBitParam?.size?.let { size(it, it) } + avatarEightBitParam?.margin?.let { margin(it) } + avatarEightBitParam?.padding?.let { padding(it) } + if (avatarEightBitParam != null && !avatarEightBitParam.colors.isNullOrEmpty()) { + color(decodeColor(avatarEightBitParam.colors!!.random())) + } + avatarEightBitParam?.background?.let { layers(ColorPaintBackgroundLayer(decodeColor(it))) } + }.build() + } else { + EightBitAvatar.newMaleAvatarBuilder().apply { + avatarEightBitParam?.size?.let { size(it, it) } + avatarEightBitParam?.margin?.let { margin(it) } + avatarEightBitParam?.padding?.let { padding(it) } + if (avatarEightBitParam != null && !avatarEightBitParam.colors.isNullOrEmpty()) { + color(decodeColor(avatarEightBitParam.colors!!.random())) + } + avatarEightBitParam?.background?.let { layers(ColorPaintBackgroundLayer(decodeColor(it))) } + }.build() + } - return avatar.createAsPngBytes(avatarEightBitParam?.seed ?: NumberUtil.getRandomLong()) - } + return avatar.createAsPngBytes(avatarEightBitParam?.seed ?: NumberUtil.getRandomLong()) + } + */ fun decodeColor(nm: String): Color { return if (Regex("^#[0-9a-fA-F]{6}$").matches(nm)) { diff --git a/src/main/kotlin/top/fatweb/api/service/api/v1/IAvatarService.kt b/src/main/kotlin/top/fatweb/api/service/api/v1/IAvatarService.kt index 5737b79..80cae76 100644 --- a/src/main/kotlin/top/fatweb/api/service/api/v1/IAvatarService.kt +++ b/src/main/kotlin/top/fatweb/api/service/api/v1/IAvatarService.kt @@ -16,6 +16,6 @@ interface IAvatarService { fun github(avatarGitHubParam: AvatarGitHubParam?): ByteArray - fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray +// fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray } \ No newline at end of file diff --git a/src/test/kotlin/top/fatweb/api/FatWebApiApplicationTests.kt b/src/test/kotlin/top/fatweb/api/FatWebApiApplicationTests.kt index ff42471..4800eaf 100644 --- a/src/test/kotlin/top/fatweb/api/FatWebApiApplicationTests.kt +++ b/src/test/kotlin/top/fatweb/api/FatWebApiApplicationTests.kt @@ -1,6 +1,5 @@ package top.fatweb.api -import com.talanlabs.avatargenerator.GitHubAvatar import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -11,6 +10,7 @@ import top.fatweb.api.properties.SecurityProperties import top.fatweb.api.util.ByteUtil import top.fatweb.api.util.JwtUtil import top.fatweb.api.util.StrUtil +import top.fatweb.avatargenerator.GitHubAvatar import kotlin.io.encoding.Base64 import kotlin.io.encoding.ExperimentalEncodingApi