mirror of
https://github.com/upscayl/upscayl.git
synced 2025-02-22 13:29:59 +01:00
Update compression
This commit is contained in:
parent
1228ddaeab
commit
45b939f125
@ -9,7 +9,7 @@ import {
|
|||||||
setImagePath,
|
setImagePath,
|
||||||
setOutputFolderPath,
|
setOutputFolderPath,
|
||||||
setOverwrite,
|
setOverwrite,
|
||||||
setQuality,
|
setCompression,
|
||||||
setSaveOutputFolder,
|
setSaveOutputFolder,
|
||||||
} from "./utils/config-variables";
|
} from "./utils/config-variables";
|
||||||
import electronIsDev from "electron-is-dev";
|
import electronIsDev from "electron-is-dev";
|
||||||
@ -104,9 +104,9 @@ const createMainWindow = () => {
|
|||||||
.then((lastSavedQuality: string | null) => {
|
.then((lastSavedQuality: string | null) => {
|
||||||
if (lastSavedQuality !== null) {
|
if (lastSavedQuality !== null) {
|
||||||
if (parseInt(lastSavedQuality) === 100) {
|
if (parseInt(lastSavedQuality) === 100) {
|
||||||
setQuality(99);
|
setCompression(99);
|
||||||
} else {
|
} else {
|
||||||
setQuality(parseInt(lastSavedQuality));
|
setCompression(parseInt(lastSavedQuality));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -5,7 +5,7 @@ export let folderPath: string | undefined = undefined;
|
|||||||
export let customModelsFolderPath: string | undefined = undefined;
|
export let customModelsFolderPath: string | undefined = undefined;
|
||||||
export let outputFolderPath: string | undefined = undefined;
|
export let outputFolderPath: string | undefined = undefined;
|
||||||
export let saveOutputFolder = false;
|
export let saveOutputFolder = false;
|
||||||
export let quality = 0;
|
export let compression = 0;
|
||||||
export let overwrite = false;
|
export let overwrite = false;
|
||||||
export let stopped = false;
|
export let stopped = false;
|
||||||
export let childProcesses: {
|
export let childProcesses: {
|
||||||
@ -34,8 +34,8 @@ export function setSaveOutputFolder(value: boolean): void {
|
|||||||
saveOutputFolder = value;
|
saveOutputFolder = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setQuality(value: number): void {
|
export function setCompression(value: number): void {
|
||||||
quality = value;
|
compression = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setOverwrite(value: boolean): void {
|
export function setOverwrite(value: boolean): void {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import sharp from "sharp";
|
import sharp from "sharp";
|
||||||
import logit from "./logit";
|
import logit from "./logit";
|
||||||
import { getMainWindow } from "../main-window";
|
import { getMainWindow } from "../main-window";
|
||||||
import { quality } from "./config-variables";
|
import { compression } from "./config-variables";
|
||||||
|
|
||||||
const convertAndScale = async (
|
const convertAndScale = async (
|
||||||
originalImagePath: string,
|
originalImagePath: string,
|
||||||
@ -26,10 +26,10 @@ const convertAndScale = async (
|
|||||||
.withMetadata(); // Keep metadata
|
.withMetadata(); // Keep metadata
|
||||||
// Change the output according to the saveImageAs
|
// Change the output according to the saveImageAs
|
||||||
if (saveImageAs === "png") {
|
if (saveImageAs === "png") {
|
||||||
newImage.png({ quality: 100 - quality });
|
newImage.png({ quality: 100 - compression });
|
||||||
} else if (saveImageAs === "jpg") {
|
} else if (saveImageAs === "jpg") {
|
||||||
console.log("Quality: ", quality);
|
console.log("Quality: ", compression);
|
||||||
newImage.jpeg({ quality: 100 - quality });
|
newImage.jpeg({ quality: 100 - compression });
|
||||||
}
|
}
|
||||||
// Save the image
|
// Save the image
|
||||||
const buffer = await newImage.toBuffer();
|
const buffer = await newImage.toBuffer();
|
||||||
|
@ -46,6 +46,10 @@
|
|||||||
"dist:dmg": "tsc && npm run build && cross-env DEBUG=* electron-builder build -m dmg",
|
"dist:dmg": "tsc && npm run build && cross-env DEBUG=* electron-builder build -m dmg",
|
||||||
"dist:msi": "tsc && npm run build && cross-env DEBUG=* electron-builder build -w nsis",
|
"dist:msi": "tsc && npm run build && cross-env DEBUG=* electron-builder build -w nsis",
|
||||||
"dist:pkg": "tsc && npm run build && cross-env DEBUG=* electron-builder build -m pkg",
|
"dist:pkg": "tsc && npm run build && cross-env DEBUG=* electron-builder build -m pkg",
|
||||||
|
"dist:mac": "tsc && npm run build && electron-builder --mac --universal",
|
||||||
|
"dist:mac-arm64": "tsc && npm run build && electron-builder --mac --arm64",
|
||||||
|
"dist:win": "tsc && npm run build && electron-builder --win",
|
||||||
|
"dist:linux": "tsc && npm run build && electron-builder --linux",
|
||||||
"publish-app": "tsc && npm run build && electron-builder -wl --publish always",
|
"publish-app": "tsc && npm run build && electron-builder -wl --publish always",
|
||||||
"publish-linux-app": "tsc && npm run build && electron-builder -l --publish always",
|
"publish-linux-app": "tsc && npm run build && electron-builder -l --publish always",
|
||||||
"publish-win-app": "tsc && npm run build && electron-builder -w --publish always",
|
"publish-win-app": "tsc && npm run build && electron-builder -w --publish always",
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
|
|
||||||
type QualityInputProps = {
|
type QualityInputProps = {
|
||||||
quality: number;
|
compression: number;
|
||||||
handleQualityChange: (arg: any) => void;
|
handleQualityChange: (arg: any) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function QualityInput({
|
export function QualityInput({
|
||||||
quality,
|
compression,
|
||||||
handleQualityChange,
|
handleQualityChange,
|
||||||
}: QualityInputProps) {
|
}: QualityInputProps) {
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
<div className="flex gap-1 text-sm font-medium uppercase">
|
<div className="flex gap-1 text-sm font-medium uppercase">
|
||||||
<p className="shrink-0">Image Compression ({quality}%)</p>
|
<p className="shrink-0">Image Compression ({compression}%)</p>
|
||||||
<p className="badge-primary badge text-[10px] font-medium">
|
<p className="badge-primary badge text-[10px] font-medium">
|
||||||
EXPERIMENTAL
|
EXPERIMENTAL
|
||||||
</p>
|
</p>
|
||||||
@ -23,7 +23,7 @@ export function QualityInput({
|
|||||||
className="range range-primary w-full max-w-xs"
|
className="range range-primary w-full max-w-xs"
|
||||||
min={0}
|
min={0}
|
||||||
max={100}
|
max={100}
|
||||||
value={quality}
|
value={compression}
|
||||||
onChange={handleQualityChange}
|
onChange={handleQualityChange}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,8 +22,8 @@ interface IProps {
|
|||||||
setModel: React.Dispatch<React.SetStateAction<string>>;
|
setModel: React.Dispatch<React.SetStateAction<string>>;
|
||||||
saveImageAs: string;
|
saveImageAs: string;
|
||||||
setSaveImageAs: React.Dispatch<React.SetStateAction<string>>;
|
setSaveImageAs: React.Dispatch<React.SetStateAction<string>>;
|
||||||
quality: number;
|
compression: number;
|
||||||
setQuality: React.Dispatch<React.SetStateAction<number>>;
|
setCompression: React.Dispatch<React.SetStateAction<number>>;
|
||||||
gpuId: string;
|
gpuId: string;
|
||||||
setGpuId: React.Dispatch<React.SetStateAction<string>>;
|
setGpuId: React.Dispatch<React.SetStateAction<string>>;
|
||||||
logData: string[];
|
logData: string[];
|
||||||
@ -38,8 +38,8 @@ interface IProps {
|
|||||||
function SettingsTab({
|
function SettingsTab({
|
||||||
batchMode,
|
batchMode,
|
||||||
setModel,
|
setModel,
|
||||||
quality,
|
compression,
|
||||||
setQuality,
|
setCompression,
|
||||||
gpuId,
|
gpuId,
|
||||||
setGpuId,
|
setGpuId,
|
||||||
saveImageAs,
|
saveImageAs,
|
||||||
@ -78,7 +78,7 @@ function SettingsTab({
|
|||||||
} else {
|
} else {
|
||||||
const currentlySavedImageFormat = localStorage.getItem("saveImageAs");
|
const currentlySavedImageFormat = localStorage.getItem("saveImageAs");
|
||||||
logit(
|
logit(
|
||||||
"⚙️ Getting saveImageAs from localStorage",
|
"⚙️ Getting saveImageAs from localStorage: ",
|
||||||
currentlySavedImageFormat
|
currentlySavedImageFormat
|
||||||
);
|
);
|
||||||
setSaveImageAs(currentlySavedImageFormat);
|
setSaveImageAs(currentlySavedImageFormat);
|
||||||
@ -96,7 +96,7 @@ function SettingsTab({
|
|||||||
setCurrentModel(currentlySavedModel);
|
setCurrentModel(currentlySavedModel);
|
||||||
setModel(currentlySavedModel.value);
|
setModel(currentlySavedModel.value);
|
||||||
logit(
|
logit(
|
||||||
"⚙️ Getting model from localStorage",
|
"⚙️ Getting model from localStorage: ",
|
||||||
JSON.stringify(currentlySavedModel)
|
JSON.stringify(currentlySavedModel)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -107,7 +107,7 @@ function SettingsTab({
|
|||||||
} else {
|
} else {
|
||||||
const currentlySavedGpuId = localStorage.getItem("gpuId");
|
const currentlySavedGpuId = localStorage.getItem("gpuId");
|
||||||
setGpuId(currentlySavedGpuId);
|
setGpuId(currentlySavedGpuId);
|
||||||
logit("⚙️ Getting gpuId from localStorage", currentlySavedGpuId);
|
logit("⚙️ Getting gpuId from localStorage: ", currentlySavedGpuId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!localStorage.getItem("rememberOutputFolder")) {
|
if (!localStorage.getItem("rememberOutputFolder")) {
|
||||||
@ -118,24 +118,22 @@ function SettingsTab({
|
|||||||
"rememberOutputFolder"
|
"rememberOutputFolder"
|
||||||
);
|
);
|
||||||
logit(
|
logit(
|
||||||
"⚙️ Getting rememberOutputFolder from localStorage",
|
"⚙️ Getting rememberOutputFolder from localStorage: ",
|
||||||
currentlySavedRememberOutputFolder
|
currentlySavedRememberOutputFolder
|
||||||
);
|
);
|
||||||
setRememberOutputFolder(
|
setRememberOutputFolder(
|
||||||
currentlySavedRememberOutputFolder === "true" ? true : false
|
currentlySavedRememberOutputFolder === "true" ? true : false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (!localStorage.getItem("quality")) {
|
if (!localStorage.getItem("quality")) {
|
||||||
logit("⚙️ Setting quality to 100%");
|
logit("⚙️ Setting quality to 100%");
|
||||||
localStorage.setItem("quality", JSON.stringify(quality));
|
localStorage.setItem("quality", JSON.stringify(compression));
|
||||||
} else {
|
} else {
|
||||||
const currentlySavedQuality = localStorage.getItem("quality");
|
const currentlySavedQuality = localStorage.getItem("quality");
|
||||||
logit("⚙️ Getting quality from localStorage", quality);
|
logit("⚙️ Getting quality from localStorage", compression);
|
||||||
if (currentlySavedQuality) {
|
if (currentlySavedQuality) {
|
||||||
setQuality(JSON.parse(currentlySavedQuality));
|
setCompression(JSON.parse(currentlySavedQuality));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
@ -147,7 +145,7 @@ function SettingsTab({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleQualityChange = (e) => {
|
const handleQualityChange = (e) => {
|
||||||
setQuality(e.target.value);
|
setCompression(e.target.value);
|
||||||
localStorage.setItem("quality", e.target.value);
|
localStorage.setItem("quality", e.target.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -197,7 +195,7 @@ function SettingsTab({
|
|||||||
<ImageScaleSelect scale={scale} setScale={setScale} />
|
<ImageScaleSelect scale={scale} setScale={setScale} />
|
||||||
|
|
||||||
<QualityInput
|
<QualityInput
|
||||||
quality={quality}
|
compression={compression}
|
||||||
handleQualityChange={handleQualityChange}
|
handleQualityChange={handleQualityChange}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ function LeftPaneImageSteps({
|
|||||||
} else {
|
} else {
|
||||||
const currentlySavedImageFormat = localStorage.getItem("saveImageAs");
|
const currentlySavedImageFormat = localStorage.getItem("saveImageAs");
|
||||||
logit(
|
logit(
|
||||||
"⚙️ Getting saveImageAs from localStorage",
|
"⚙️ Getting saveImageAs from localStorage: ",
|
||||||
currentlySavedImageFormat
|
currentlySavedImageFormat
|
||||||
);
|
);
|
||||||
setSaveImageAs(currentlySavedImageFormat);
|
setSaveImageAs(currentlySavedImageFormat);
|
||||||
@ -87,7 +87,7 @@ function LeftPaneImageSteps({
|
|||||||
setCurrentModel(currentlySavedModel);
|
setCurrentModel(currentlySavedModel);
|
||||||
setModel(currentlySavedModel.value);
|
setModel(currentlySavedModel.value);
|
||||||
logit(
|
logit(
|
||||||
"⚙️ Getting model from localStorage",
|
"⚙️ Getting model from localStorage: ",
|
||||||
JSON.stringify(currentlySavedModel)
|
JSON.stringify(currentlySavedModel)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -98,7 +98,7 @@ function LeftPaneImageSteps({
|
|||||||
} else {
|
} else {
|
||||||
const currentlySavedGpuId = localStorage.getItem("gpuId");
|
const currentlySavedGpuId = localStorage.getItem("gpuId");
|
||||||
setGpuId(currentlySavedGpuId);
|
setGpuId(currentlySavedGpuId);
|
||||||
logit("⚙️ Getting gpuId from localStorage", currentlySavedGpuId);
|
logit("⚙️ Getting gpuId from localStorage: ", currentlySavedGpuId);
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ const Home = () => {
|
|||||||
const [doubleUpscayl, setDoubleUpscayl] = useState(false);
|
const [doubleUpscayl, setDoubleUpscayl] = useState(false);
|
||||||
const [overwrite, setOverwrite] = useState(false);
|
const [overwrite, setOverwrite] = useState(false);
|
||||||
const [doubleUpscaylCounter, setDoubleUpscaylCounter] = useState(0);
|
const [doubleUpscaylCounter, setDoubleUpscaylCounter] = useState(0);
|
||||||
const [quality, setQuality] = useState(0);
|
const [compression, setCompression] = useState(0);
|
||||||
const [gpuId, setGpuId] = useState("");
|
const [gpuId, setGpuId] = useState("");
|
||||||
const [saveImageAs, setSaveImageAs] = useState("png");
|
const [saveImageAs, setSaveImageAs] = useState("png");
|
||||||
const [zoomAmount, setZoomAmount] = useState("100%");
|
const [zoomAmount, setZoomAmount] = useState("100%");
|
||||||
@ -531,8 +531,8 @@ const Home = () => {
|
|||||||
<SettingsTab
|
<SettingsTab
|
||||||
batchMode={batchMode}
|
batchMode={batchMode}
|
||||||
setModel={setModel}
|
setModel={setModel}
|
||||||
quality={quality}
|
compression={compression}
|
||||||
setQuality={setQuality}
|
setCompression={setCompression}
|
||||||
gpuId={gpuId}
|
gpuId={gpuId}
|
||||||
setGpuId={setGpuId}
|
setGpuId={setGpuId}
|
||||||
saveImageAs={saveImageAs}
|
saveImageAs={saveImageAs}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user