Skip to content
This repository was archived by the owner on Mar 13, 2026. It is now read-only.

Commit 01e4331

Browse files
committed
fix: no gif encoder
1 parent bb3d5e5 commit 01e4331

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/main/kotlin/General.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import net.mamoe.mirai.message.data.MessageSource.Key.quote
1111
import net.mamoe.mirai.message.nextMessageOrNull
1212
import net.mamoe.mirai.utils.ExternalResource.Companion.toExternalResource
1313
import org.jetbrains.skia.*
14+
import org.laolittle.plugin.gif.GifLibrary
1415
import java.nio.file.Path
1516
import kotlin.io.path.readBytes
1617
import org.jetbrains.skia.Image as SkImage
@@ -102,4 +103,13 @@ fun Canvas.drawImageRectLinear(image: SkImage, dst: Rect, paint: Paint?) =
102103

103104
fun Canvas.drawImageRectLinear(image: SkImage, dst: Rect) = drawImageRectLinear(image, dst, null)
104105

105-
suspend fun Image.getBytes(): ByteArray = httpClient.get(queryUrl())
106+
suspend fun Image.getBytes(): ByteArray = httpClient.get(queryUrl())
107+
108+
val gifSupported by lazy {
109+
try {
110+
GifLibrary.load()
111+
true
112+
} catch (e: UnsatisfiedLinkError) {
113+
false
114+
}
115+
}

src/main/kotlin/meme/BlackWhite.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import org.jetbrains.skia.*
66
import org.laolittle.plugin.Fonts
77
import org.laolittle.plugin.bytes
88
import org.laolittle.plugin.draw.DrawMeme
9+
import org.laolittle.plugin.draw.gifSupported
910
import org.laolittle.plugin.gif.GifEncoder
1011
import org.laolittle.plugin.gif.GifSetting
1112
import org.laolittle.plugin.usedBy
@@ -117,7 +118,7 @@ suspend fun blackWhite(text: String, image: ByteArray, _filter: String): ByteArr
117118
}
118119

119120
codec.use {
120-
return if (codec.encodedImageFormat == EncodedImageFormat.GIF) {
121+
return if (gifSupported && codec.encodedImageFormat == EncodedImageFormat.GIF) {
121122
val bitmaps = Array(codec.frameCount) {
122123
//DrawMeme.async { // multi-thread will make jvm crash
123124
Bitmap().apply {

0 commit comments

Comments
 (0)