feat: 增加LZMA参数
This commit is contained in:
1 parent
bd10195fdb
commit
9e8cb8ba0e
3 files changed
+38
-4
No files matched your search
@@ -32,6 +32,7 @@ struct UpxOptions {
|
||||
output_file: String,
|
||||
compression_level: String,
|
||||
backup: bool,
|
||||
lzma: bool,
|
||||
ultra_brute: bool,
|
||||
force: bool,
|
||||
}
|
||||
@@ -47,6 +48,7 @@ struct AppConfig {
|
||||
compression_level: i32,
|
||||
overwrite: bool,
|
||||
backup: bool,
|
||||
lzma: bool,
|
||||
ultra_brute: bool,
|
||||
include_subfolders: bool,
|
||||
force_compress: bool,
|
||||
@@ -58,6 +60,7 @@ impl Default for AppConfig {
|
||||
compression_level: 9,
|
||||
overwrite: true,
|
||||
backup: false,
|
||||
lzma: false,
|
||||
ultra_brute: false,
|
||||
include_subfolders: false,
|
||||
force_compress: false,
|
||||
@@ -149,13 +152,17 @@ fn build_compress_args(
|
||||
// 压缩级别
|
||||
if options.ultra_brute {
|
||||
args.push("--ultra-brute".to_string());
|
||||
args.push("--no-lzma".to_string());
|
||||
} else if options.compression_level == "best" {
|
||||
args.push("--best".to_string());
|
||||
} else {
|
||||
args.push(format!("-{}", options.compression_level));
|
||||
}
|
||||
|
||||
// LZMA 压缩
|
||||
if options.lzma {
|
||||
args.push("--lzma".to_string());
|
||||
}
|
||||
|
||||
// 强制压缩
|
||||
if options.force {
|
||||
args.push("--force".to_string());
|
||||
|
||||
+21
-3
@@ -312,7 +312,7 @@
|
||||
极限压缩
|
||||
</span>
|
||||
<p class="text-xs text-muted-foreground mt-0.5">
|
||||
尝试所有压缩方法,速度较慢但压缩率最高
|
||||
尝试所有压缩方法,速度慢但压缩率最高
|
||||
</p>
|
||||
</div>
|
||||
</label>
|
||||
@@ -336,7 +336,7 @@
|
||||
</label>
|
||||
|
||||
<label
|
||||
class="flex items-start gap-3 cursor-pointer p-3 border border-border hover:border-primary hover:bg-accent transition-all rounded-md col-span-2"
|
||||
class="flex items-start gap-3 cursor-pointer p-3 border border-border hover:border-primary hover:bg-accent transition-all rounded-md"
|
||||
>
|
||||
<input
|
||||
type="checkbox"
|
||||
@@ -348,7 +348,25 @@
|
||||
强制压缩
|
||||
</span>
|
||||
<p class="text-xs text-muted-foreground mt-0.5">
|
||||
强制处理受保护的文件(如 GUARD_CF),可能移除安全特性
|
||||
强制处理受保护的文件
|
||||
</p>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
<label
|
||||
class="flex items-start gap-3 cursor-pointer p-3 border border-border hover:border-primary hover:bg-accent transition-all rounded-md"
|
||||
>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="lzma"
|
||||
class="w-4 h-4 mt-0.5 rounded border-input cursor-pointer flex-shrink-0"
|
||||
/>
|
||||
<div class="flex-1 min-w-0">
|
||||
<span class="text-sm font-medium text-foreground block">
|
||||
LZMA 压缩
|
||||
</span>
|
||||
<p class="text-xs text-muted-foreground mt-0.5">
|
||||
压缩率更高但速度稍慢
|
||||
</p>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
@@ -21,6 +21,7 @@ let compressBtn,
|
||||
levelDescription,
|
||||
overwriteCheckbox,
|
||||
backupCheckbox,
|
||||
lzmaCheckbox,
|
||||
ultraBruteCheckbox,
|
||||
includeSubfoldersCheckbox,
|
||||
forceCompressCheckbox,
|
||||
@@ -45,6 +46,7 @@ function initDOMElements() {
|
||||
levelDescription = $('level-description')
|
||||
overwriteCheckbox = $('overwrite')
|
||||
backupCheckbox = $('backup')
|
||||
lzmaCheckbox = $('lzma')
|
||||
ultraBruteCheckbox = $('ultra-brute')
|
||||
includeSubfoldersCheckbox = $('include-subfolders')
|
||||
forceCompressCheckbox = $('force-compress')
|
||||
@@ -505,10 +507,15 @@ async function processUpx(mode, inputFile, outputFile) {
|
||||
output_file: outputFile,
|
||||
compression_level: getCompressionLevel(),
|
||||
backup: backupCheckbox.checked,
|
||||
lzma: lzmaCheckbox.checked,
|
||||
ultra_brute: ultraBruteCheckbox.checked,
|
||||
force: forceCompressCheckbox.checked,
|
||||
}
|
||||
|
||||
if (lzmaCheckbox.checked) {
|
||||
addLog('已启用 LZMA 压缩', 'info')
|
||||
}
|
||||
|
||||
if (ultraBruteCheckbox.checked) {
|
||||
addLog('已启用极限压缩模式', 'info')
|
||||
}
|
||||
@@ -849,6 +856,7 @@ async function saveCurrentConfig() {
|
||||
compression_level: parseInt(compressionLevel.value),
|
||||
overwrite: overwriteCheckbox.checked,
|
||||
backup: backupCheckbox.checked,
|
||||
lzma: lzmaCheckbox.checked,
|
||||
ultra_brute: ultraBruteCheckbox.checked,
|
||||
include_subfolders: includeSubfoldersCheckbox.checked,
|
||||
force_compress: forceCompressCheckbox.checked,
|
||||
@@ -864,6 +872,7 @@ function applyConfigToUI(config) {
|
||||
compressionLevel.value = config.compression_level
|
||||
overwriteCheckbox.checked = config.overwrite
|
||||
backupCheckbox.checked = config.backup
|
||||
lzmaCheckbox.checked = config.lzma || false
|
||||
ultraBruteCheckbox.checked = config.ultra_brute
|
||||
includeSubfoldersCheckbox.checked = config.include_subfolders
|
||||
forceCompressCheckbox.checked = config.force_compress
|
||||
|
||||
Reference in new issue
Block a user