1
0
mirror of https://github.com/upscayl/upscayl.git synced 2025-02-22 13:29:59 +01:00

Update compression

This commit is contained in:
Nayam Amarshe 2023-09-13 19:37:45 +05:30
parent 1228ddaeab
commit 45b939f125
8 changed files with 37 additions and 35 deletions

View File

@ -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));
} }
} }
}); });

View File

@ -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 {

View File

@ -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();

View File

@ -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",

View File

@ -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>

View File

@ -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}
/> />

View File

@ -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);
} }
}, []); }, []);

View File

@ -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}