fix: 调整 hash 摘取实现
This commit is contained in:
@ -56,8 +56,8 @@ import kotlin.system.measureTimeMillis
|
||||
object ImageUtils {
|
||||
private const val TAG = "ImageUtils"
|
||||
|
||||
private const val BLUR_HASH_PREFIX = "blurhash"
|
||||
private const val BLUR_HASH_REGEX = "blurhash_([A-Za-z0-9+=]+)"
|
||||
private const val THUMBHASH_PREFIX = "thumbhash"
|
||||
private const val THUMBHASH_REGEX = "(?<=thumbhash_)([^.]+)"
|
||||
|
||||
private const val PIC_MAX_FILE_SIZE: Long = 10 * 1024 * 1024
|
||||
|
||||
@ -65,7 +65,7 @@ object ImageUtils {
|
||||
private val LARGE_ANIMATED_ICON_SIZE by lazy { 80F.dip2px() }
|
||||
private val STANDARD_ANIMATED_ICON_SIZE by lazy { 60F.dip2px() }
|
||||
|
||||
private val blurHashRegex by lazy { Regex(BLUR_HASH_REGEX) }
|
||||
private val thumbHashRegex by lazy { Regex(THUMBHASH_REGEX) }
|
||||
|
||||
val TAG_TARGET_WIDTH by lazy { R.dimen.width_placeholder }
|
||||
val TAG_IS_GAME_ICON by lazy { R.dimen.game_icon_placeholder }
|
||||
@ -333,7 +333,9 @@ object ImageUtils {
|
||||
var lowResUrl = ""
|
||||
var highResUrl = ""
|
||||
|
||||
var hash = "mhgKFIa+qma/mHlnmHq0BzPlBA=="
|
||||
val sampleUrl = "https://and-static.ghzs.com/image/game/home/setting/2021/09/28/6152ccde52f673122f10a110_thumbhash_mRgKFIa-qma_mHlnmHq0BzPVBQ.jpeg"
|
||||
|
||||
var hash = getThumbHashIfValid(sampleUrl)
|
||||
|
||||
// 找同一图片地址已加载过的图片作为低质量预览图(字符串操作耗时不短,所以这里放到了独立的子线程来处理)
|
||||
// TODO 根据实际请求大小(w_width)来避免小图用大图作为低质量图片
|
||||
@ -819,8 +821,13 @@ object ImageUtils {
|
||||
}
|
||||
}
|
||||
|
||||
private fun generateThumbHashDrawable(hash: String, width: Int, height: Int): ThumbHashDrawable {
|
||||
return ThumbHashDrawable(hash, width, height)
|
||||
private fun getThumbHashIfValid(url: String) : String {
|
||||
return if (url.contains(THUMBHASH_PREFIX)) {
|
||||
var hash = thumbHashRegex.find(url)?.groups?.get(1)?.value ?: ""
|
||||
hash.replace("-", "+").replace("_", "/")
|
||||
} else {
|
||||
""
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user