Update avatar-generator package

This commit is contained in:
2023-11-23 19:10:00 +08:00
parent bcd36f6665
commit 50ed3d1aaa
5 changed files with 40 additions and 36 deletions

View File

@@ -57,9 +57,11 @@ class AvatarController(
return avatarService.github(avatarGitHubParam) return avatarService.github(avatarGitHubParam)
} }
/*
@Operation(summary = "8 Bit 头像") @Operation(summary = "8 Bit 头像")
@GetMapping("/8bit", produces = [MediaType.IMAGE_PNG_VALUE]) @GetMapping("/8bit", produces = [MediaType.IMAGE_PNG_VALUE])
fun eightBit(@PathVariable apiVersion: String, @Valid avatarEightBitParam: AvatarEightBitParam): ByteArray { fun eightBit(@PathVariable apiVersion: String, @Valid avatarEightBitParam: AvatarEightBitParam): ByteArray {
return avatarService.eightBit(avatarEightBitParam) return avatarService.eightBit(avatarEightBitParam)
} }
*/
} }

View File

@@ -3,7 +3,6 @@ package top.fatweb.api.handler
import com.auth0.jwt.exceptions.JWTDecodeException import com.auth0.jwt.exceptions.JWTDecodeException
import com.auth0.jwt.exceptions.SignatureVerificationException import com.auth0.jwt.exceptions.SignatureVerificationException
import com.auth0.jwt.exceptions.TokenExpiredException import com.auth0.jwt.exceptions.TokenExpiredException
import com.talanlabs.avatargenerator.AvatarException
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.springframework.dao.DuplicateKeyException 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.ResponseCode
import top.fatweb.api.entity.common.ResponseResult import top.fatweb.api.entity.common.ResponseResult
import top.fatweb.api.exception.TokenHasExpiredException import top.fatweb.api.exception.TokenHasExpiredException
import top.fatweb.avatargenerator.AvatarException
/** /**
* Exception handler * Exception handler

View File

@@ -1,17 +1,15 @@
package top.fatweb.api.service.api.v1 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 org.springframework.stereotype.Service
import top.fatweb.api.param.api.v1.avatar.AvatarBaseParam 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.param.api.v1.avatar.AvatarGitHubParam
import top.fatweb.api.util.NumberUtil import top.fatweb.api.util.NumberUtil
import top.fatweb.api.vo.api.v1.avatar.DefaultBase64Vo 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 java.awt.Color
import kotlin.io.encoding.Base64 import kotlin.io.encoding.Base64
import kotlin.io.encoding.ExperimentalEncodingApi import kotlin.io.encoding.ExperimentalEncodingApi
@@ -30,7 +28,8 @@ class AvatarServiceImpl : IAvatarService {
if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty()) if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty())
TriangleAvatar.newAvatarBuilder() TriangleAvatar.newAvatarBuilder()
else TriangleAvatar.newAvatarBuilder( else TriangleAvatar.newAvatarBuilder(
*avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray()) *avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray()
)
).apply { ).apply {
avatarBaseParam?.size?.let { size(it, it) } avatarBaseParam?.size?.let { size(it, it) }
avatarBaseParam?.margin?.let { margin(it) } avatarBaseParam?.margin?.let { margin(it) }
@@ -46,7 +45,8 @@ class AvatarServiceImpl : IAvatarService {
if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty()) if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty())
SquareAvatar.newAvatarBuilder() SquareAvatar.newAvatarBuilder()
else SquareAvatar.newAvatarBuilder( else SquareAvatar.newAvatarBuilder(
*avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray()) *avatarBaseParam.colors!!.map { decodeColor(it) }.toTypedArray()
)
).apply { ).apply {
avatarBaseParam?.size?.let { size(it, it) } avatarBaseParam?.size?.let { size(it, it) }
avatarBaseParam?.margin?.let { margin(it) } avatarBaseParam?.margin?.let { margin(it) }
@@ -86,6 +86,7 @@ class AvatarServiceImpl : IAvatarService {
return avatar.createAsPngBytes(avatarGitHubParam?.seed ?: NumberUtil.getRandomLong()) return avatar.createAsPngBytes(avatarGitHubParam?.seed ?: NumberUtil.getRandomLong())
} }
/*
override fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray { override fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray {
val avatar = if (avatarEightBitParam?.gender?.equals("female") ?: false) { val avatar = if (avatarEightBitParam?.gender?.equals("female") ?: false) {
EightBitAvatar.newFemaleAvatarBuilder().apply { EightBitAvatar.newFemaleAvatarBuilder().apply {
@@ -111,6 +112,7 @@ class AvatarServiceImpl : IAvatarService {
return avatar.createAsPngBytes(avatarEightBitParam?.seed ?: NumberUtil.getRandomLong()) return avatar.createAsPngBytes(avatarEightBitParam?.seed ?: NumberUtil.getRandomLong())
} }
*/
fun decodeColor(nm: String): Color { fun decodeColor(nm: String): Color {
return if (Regex("^#[0-9a-fA-F]{6}$").matches(nm)) { return if (Regex("^#[0-9a-fA-F]{6}$").matches(nm)) {

View File

@@ -16,6 +16,6 @@ interface IAvatarService {
fun github(avatarGitHubParam: AvatarGitHubParam?): ByteArray fun github(avatarGitHubParam: AvatarGitHubParam?): ByteArray
fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray // fun eightBit(avatarEightBitParam: AvatarEightBitParam?): ByteArray
} }

View File

@@ -1,6 +1,5 @@
package top.fatweb.api package top.fatweb.api
import com.talanlabs.avatargenerator.GitHubAvatar
import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith 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.ByteUtil
import top.fatweb.api.util.JwtUtil import top.fatweb.api.util.JwtUtil
import top.fatweb.api.util.StrUtil import top.fatweb.api.util.StrUtil
import top.fatweb.avatargenerator.GitHubAvatar
import kotlin.io.encoding.Base64 import kotlin.io.encoding.Base64
import kotlin.io.encoding.ExperimentalEncodingApi import kotlin.io.encoding.ExperimentalEncodingApi