DrawMeme - 基于Skiko的奇怪的图片生成器
-
@sakuraMY 库文件没有放到数据目录下
-
@tsudzuki sb了,没好好看文档
-
更新1.2.0
https://github.com/LaoLittle/DrawMeme/releases/tag/1.2.0支持自定义meme
在data/org.laolittle.plugin.draw.DrawMeme/custom
文件夹下创建文件,输入以下内容meme: 自定义名字 input: {文件路径(相对于custom文件夹)} avatars: @u1, @u2 // 输入的用户头像如#xxx @ @ // 支持使用`//`注释 frame1: // 绘制到第一帧 draw u1 Rect{0,0,100,100.33} // 将u1绘制到图片对应的矩形上(左0 上0 右100 底100.33) draw u2 Circle{200,200, 100} // 将u2绘制到图片对应的圆形上(坐标x: 200,y:200,半径100) frame2: //绘制到第二帧 draw u2 Rect{0,0,100,100} draw u2 Rect{0,0,100,100} draw u1 Circle{100,100,90.12}
当然,还有许多不完善的地方,也可能有bug
-
大佬 我这放的位置应该没问题吧 为啥还是报错呢 -
-
@tsudzuki 多谢大佬 我瞎了 没看到这个win7
-
-
此回复已被删除! -
大佬,这个怎么解决 -
@2741911624 忘了下载库了,抱歉
-
@tsudzuki 还是报错
-
@2741911624 看不清
-
@tsudzuki
2022-05-31 19:02:56 E/DrawMeme: Exception in coroutine Plugin org.laolittle.plugin.draw.DrawMeme of DrawMeme
io.ktor.client.features.ClientRequestException: Client request(http://c2cpicdw.qpic.cn/offpic_new/656574536/0BADBADBAD449806492/0?term=2) invalid: 404 Not Found. Text: ""
at io.ktor.client.features.DefaultResponseValidationKt$addDefaultResponseValidation$1$1.invokeSuspend(DefaultResponseValidation.kt:47)
at io.ktor.client.features.DefaultResponseValidationKt$addDefaultResponseValidation$1$1.invoke(DefaultResponseValidation.kt)
at io.ktor.client.features.DefaultResponseValidationKt$addDefaultResponseValidation$1$1.invoke(DefaultResponseValidation.kt)
at io.ktor.client.features.HttpCallValidator.validateResponse(HttpCallValidator.kt:54)
at io.ktor.client.features.HttpCallValidator.access$validateResponse(HttpCallValidator.kt:33)
at io.ktor.client.features.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:133)
at io.ktor.client.features.HttpCallValidator$Companion$install$3.invoke(HttpCallValidator.kt)
at io.ktor.client.features.HttpCallValidator$Companion$install$3.invoke(HttpCallValidator.kt)
at io.ktor.client.features.HttpSend$Feature$install$1.invokeSuspend(HttpSend.kt:96)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147)
at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) -
-
@tsudzuki 感谢,好了
-
安完后报错
2022-05-31 19:28:49 E/DrawMeme: Exception in coroutine Plugin org.laolittle.plugin.draw.DrawMeme of DrawMeme
java.lang.NoClassDefFoundError: Could not initialize class org.laolittle.plugin.draw.meme.PornHubKt
at DrawMeme-1.2.1.mirai.jar//org.laolittle.plugin.draw.DrawMeme$onEnable$2$1.invokeSuspend(DrawMeme.kt:57)
at DrawMeme-1.2.1.mirai.jar//org.laolittle.plugin.draw.DrawMeme$onEnable$2$1.invoke(DrawMeme.kt)
at DrawMeme-1.2.1.mirai.jar//org.laolittle.plugin.draw.DrawMeme$onEnable$2$1.invoke(DrawMeme.kt)
at net.mamoe.mirai.internal.event.MessageSubscribersInternalKt$startsWithImpl$2.invokeSuspend(messageSubscribersInternal.kt:58)
at net.mamoe.mirai.internal.event.MessageSubscribersInternalKt$startsWithImpl$2.invoke(messageSubscribersInternal.kt)
at net.mamoe.mirai.internal.event.MessageSubscribersInternalKt$startsWithImpl$2.invoke(messageSubscribersInternal.kt)
at net.mamoe.mirai.internal.event.MessageSubscribersInternalKt$content$1.invokeSuspend(messageSubscribersInternal.kt:27)
at net.mamoe.mirai.internal.event.MessageSubscribersInternalKt$content$1.invoke(messageSubscribersInternal.kt)
at net.mamoe.mirai.internal.event.MessageSubscribersInternalKt$content$1.invoke(messageSubscribersInternal.kt)
at net.mamoe.mirai.event.SubscribeMessagesKt__SubscribeMessagesKt$subscribeGroupMessages$$inlined$createBuilder$SubscribeMessagesKt__SubscribeMessagesKt$1$1.invokeSuspend(subscribeMessages.kt:253)
at net.mamoe.mirai.event.SubscribeMessagesKt__SubscribeMessagesKt$subscribeGroupMessages$$inlined$createBuilder$SubscribeMessagesKt__SubscribeMessagesKt$1$1.invoke(subscribeMessages.kt)
at net.mamoe.mirai.event.SubscribeMessagesKt__SubscribeMessagesKt$subscribeGroupMessages$$inlined$createBuilder$SubscribeMessagesKt__SubscribeMessagesKt$1$1.invoke(subscribeMessages.kt)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invokeSuspend(EventChannel.kt:455)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
at net.mamoe.mirai.internal.event.Handler$onEvent$2.invokeSuspend(InternalEventListeners.kt:50)
at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:166)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at net.mamoe.mirai.internal.event.Handler.onEvent(InternalEventListeners.kt:50)
at net.mamoe.mirai.internal.event.InternalEventListenersKt.process(InternalEventListeners.kt:166)
at net.mamoe.mirai.internal.event.InternalEventListenersKt.callAndRemoveIfRequired(InternalEventListeners.kt:115)
at net.mamoe.mirai.internal.event.InternalEventListenersKt$callAndRemoveIfRequired$1.invokeSuspend(InternalEventListeners.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:202)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) -
@nnnn11111 下载字体文件
-
请问 Fonts 文件是在 Mirai\data\org.laolittle.plugin.SkikoMirai 下面吗 我装了 SkikoMirai 前置插件没有在此目录自动生成 Fonts 文件 除了需要使用字体的都可以正常使用 需要字体的会报错
-
@XiaoDai 没有生成就手动创建,当然不排除前置版本过低的问题
-
摸有问题,一摸就报错!