Skip to content

Commit

Permalink
fix #10
Browse files Browse the repository at this point in the history
  • Loading branch information
Deficuet committed Mar 13, 2024
1 parent 8b66466 commit 890d255
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 36 deletions.
8 changes: 4 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ plugins {
id 'org.jetbrains.kotlin.jvm' version '1.8.21'
id 'org.jetbrains.kotlin.plugin.serialization' version '1.8.21'
id 'org.openjfx.javafxplugin' version '0.0.12'
id 'com.github.johnrengelman.shadow' version '7.1.2'
id 'com.github.johnrengelman.shadow' version '8.1.1'
}

def progVersion = "0.0.1-beta.4"
def progVersion = "0.0.1-beta.5"
group 'io.github.deficuet'
version progVersion
mainClassName = "io.github.deficuet.alpa.gui.MainApp"
Expand All @@ -30,12 +30,12 @@ repositories {
dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-serialization-core"
implementation 'no.tornado:tornadofx:1.7.20'
implementation 'com.github.Deficuet:UnityKt:0.1.0_alpha.10'
implementation 'com.github.Deficuet:UnityKt:0.1.0_alpha.11'
implementation 'net.mamoe.yamlkt:yamlkt:0.12.0'
implementation 'org.json:json:20231013'
implementation 'com.github.Deficuet:JImageUtils:0.0.4.1'
implementation 'com.github.Deficuet:AdvancedJImageIO:0.0.3'
implementation 'com.github.Deficuet:AzurlanePaintingUtils:0.1.0_1'
implementation 'com.github.Deficuet:AzurlanePaintingUtils:0.1.2'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,9 @@ class PaintingFunctions(private val gui: PaintingPanel): BackendFunctions() {
}
status as PaintingAnalyzeStatus
with(continuation) {
width = status.result.width
height = status.result.height
this.status = status
runBlockingFX(gui) {
for (tr in status.result.transforms) {
for (tr in status.result.paintingStack) {
requiredImageMergeInfoList.add(PaintingMergeInfo(tr, tr.fileName))
}
}
Expand Down Expand Up @@ -152,8 +151,11 @@ class PaintingFunctions(private val gui: PaintingPanel): BackendFunctions() {
with(mergeInfo) {
exhibit = image.createPreview(height = 478)
this.image = with(continuation) {
if (index == 0 && (width > painting.width || height > painting.height)) {
BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR) {
if (index == 0 && (status.result.width > painting.width || status.result.height > painting.height)) {
BufferedImage(
status.result.width, status.result.height,
BufferedImage.TYPE_4BYTE_ABGR
) {
drawImage(
painting,
mergeInfo.transform.pastePoint.x.toInt(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.github.deficuet.alpa.function

import io.github.deficuet.alp.painting.decoratePainting
import io.github.deficuet.alp.paintingface.PaintingfaceAnalyzeStatus
import io.github.deficuet.alp.paintingface.analyzePaintingface
import io.github.deficuet.alp.paintingface.scalePaintingface
Expand Down Expand Up @@ -81,11 +82,8 @@ class PaintingfaceFunctions(private val gui: PaintingfacePanel): BackendFunction
}
}
with(continuation) {
manager = status.manager
baseMergeInfo = PaintingfaceMergeInfo(status.result.transforms[0], "")
faceTransform = status.result.transforms[1]
width = status.result.width
height = status.result.height
baseMergeInfo = PaintingfaceMergeInfo(status.result.mergedRect, "")
this.status = status
}
enableImport()
return true
Expand Down Expand Up @@ -116,16 +114,22 @@ class PaintingfaceFunctions(private val gui: PaintingfacePanel): BackendFunction
fun processPainting(importFile: File) {
val image = ImageIO.read(importFile).flipY().apply(true)
with(continuation) {
baseMergeInfo.image = if (width > image.width || height > image.height) {
BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR) {
val painting = if (!status.requiresMerge) {
decoratePainting(image, status.result.paintingStack[0])
} else image
baseMergeInfo.image = if (status.result.width > painting.width || status.result.height > painting.height) {
BufferedImage(
status.result.width, status.result.height,
BufferedImage.TYPE_4BYTE_ABGR
) {
drawImage(
image,
painting,
baseMergeInfo.transform.pastePoint.x.toInt(),
baseMergeInfo.transform.pastePoint.y.toInt(),
null
)
}
} else image
} else painting
}
mergePainting()
with(gui) {
Expand Down Expand Up @@ -163,17 +167,17 @@ class PaintingfaceFunctions(private val gui: PaintingfacePanel): BackendFunction
requiredImageMergeInfoList.clear()
}
val faceContext = try {
continuation.manager.loadFile(importFile.absolutePath)
continuation.status.manager.loadFile(importFile.absolutePath)
} catch (e: Exception) {
return gui.reportFaceBundleError("导入差分表情文件时出错")
}
if (faceContext.objectList.isEmpty()) return gui.reportFaceBundleError()
val sprites = faceContext.objectList.filterIsInstance<Sprite>()
if (sprites.isEmpty()) return gui.reportFaceBundleError()
for (sprite in sprites) {
val mergeInfo = continuation.createMergeInfo(continuation.faceTransform, sprite.mName).apply {
val mergeInfo = continuation.createMergeInfo(continuation.status.result.faceRect, sprite.mName).apply {
val spriteImage = sprite.getImage(SpriteCropStrategy.USE_RECT) ?: return gui.reportFaceBundleError()
image = scalePaintingface(spriteImage, continuation.faceTransform)
image = scalePaintingface(spriteImage, continuation.status.result.faceRect)
}
runBlockingFX(gui) {
requiredImageMergeInfoList.add(mergeInfo)
Expand Down Expand Up @@ -207,12 +211,12 @@ class PaintingfaceFunctions(private val gui: PaintingfacePanel): BackendFunction

fun processFaceImage(importFile: File) {
val mergeInfo = continuation.createMergeInfo(
continuation.faceTransform,
continuation.status.result.faceRect,
importFile.nameWithoutExtension
).apply {
image = scalePaintingface(
ImageIO.read(importFile).flipY().apply(true),
continuation.faceTransform
continuation.status.result.faceRect
)
}
runBlockingFX(gui) {
Expand All @@ -229,27 +233,27 @@ class PaintingfaceFunctions(private val gui: PaintingfacePanel): BackendFunction
return
}
with(continuation) {
pasteX = faceTransform.pastePoint.x.toInt() + gui.spinnerX.value
pasteY = faceTransform.pastePoint.y.toInt() + gui.spinnerY.value
pasteX = status.result.faceRect.pastePoint.x.toInt() + gui.spinnerX.value
pasteY = status.result.faceRect.pastePoint.y.toInt() + gui.spinnerY.value
}
for (face in gui.requiredImageMergeInfoList) {
face.changedFlag = 0b111
}
with(gui.spinnerX) {
with(valueFactory as IntegerSpinnerValueFactory) {
min = (-continuation.faceTransform.pastePoint.x -
min = (-continuation.status.result.faceRect.pastePoint.x -
gui.requiredImageMergeInfoList[0].image.width).toInt()
max = continuation.baseMergeInfo.image.width -
continuation.faceTransform.pastePoint.x.toInt()
continuation.status.result.faceRect.pastePoint.x.toInt()
}
isDisable = false
}
with(gui.spinnerY) {
with(valueFactory as IntegerSpinnerValueFactory) {
min = (-continuation.faceTransform.pastePoint.y -
min = (-continuation.status.result.faceRect.pastePoint.y -
gui.requiredImageMergeInfoList[0].image.height).toInt()
max = continuation.baseMergeInfo.image.height -
continuation.faceTransform.pastePoint.y.toInt()
continuation.status.result.faceRect.pastePoint.y.toInt()
}
isDisable = false
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package io.github.deficuet.alpa.utils

import io.github.deficuet.alp.TextureTransform
import io.github.deficuet.alp.painting.PaintingAnalyzeStatus
import io.github.deficuet.alp.painting.PaintingTransform
import io.github.deficuet.alp.paintingface.PaintingfaceAnalyzeStatus
import io.github.deficuet.jimage.copy
import io.github.deficuet.jimage.flipY
import io.github.deficuet.jimage.paste
import io.github.deficuet.unitykt.UnityAssetManager
import javafx.scene.control.Tab
import java.awt.image.BufferedImage
import java.io.Closeable
Expand All @@ -14,12 +15,11 @@ import javafx.scene.image.Image as ImageFX

abstract class TaskContinuation(importFile: File): Closeable {
val taskName: String = importFile.nameWithoutExtension
var width = -1
var height = -1
}

class PaintingTaskContinuation(importFile: File): TaskContinuation(importFile) {
lateinit var mergedPainting: BufferedImage
lateinit var status: PaintingAnalyzeStatus

override fun close() { }
}
Expand All @@ -44,8 +44,7 @@ class PaintingMergeInfo(

class PaintingfaceTaskContinuation(importFile: File): TaskContinuation(importFile) {
lateinit var baseMergeInfo: PaintingfaceMergeInfo
lateinit var faceTransform: TextureTransform
lateinit var manager: UnityAssetManager
lateinit var status: PaintingfaceAnalyzeStatus
var pasteX: Int = -1
var pasteY: Int = -1

Expand Down Expand Up @@ -98,8 +97,8 @@ class PaintingfaceTaskContinuation(importFile: File): TaskContinuation(importFil
}

override fun close() {
if (::manager.isInitialized) {
manager.close()
if (::status.isInitialized) {
status.manager.close()
}
}
}
Expand Down

0 comments on commit 890d255

Please sign in to comment.