mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
fix: update split into parts max params
This commit is contained in:
+9
-2
@@ -70,8 +70,8 @@
|
||||
|
||||
- [ ] qr code to text, text to qr code
|
||||
- [ ] bar code to text, text to bar code
|
||||
- [ ] split-into-parts-png - увеличить максимальные значения, плохо работает для
|
||||
нарезки ассетов
|
||||
- [ ] split-into-parts-png - в результате надо выводить размеры получившихся
|
||||
файлов
|
||||
- [ ] split-into-parts-png — режим «по размеру тайла»: указываешь размер тайла
|
||||
(16×16, 32×32…, список `SIZE_PRESETS`), инструмент сам считает сетку —
|
||||
сценарий «режу спрайтшит, знаю размер тайла, не знаю сетку» (новый режим:
|
||||
@@ -154,6 +154,13 @@
|
||||
схемой (FA-E1), либо удалить ключ из обеих локалей
|
||||
- [ ] неудобно настраивать ползунками, некоторые инструменты удобнее настроить
|
||||
через drag-n-drop. звучит сложно, но надо придумать процесс
|
||||
- [ ] не работает drag-n-drop на полях с range slider, похоже включается
|
||||
drag-n-drop для всей карточки настроек инструмента
|
||||
- [ ] результат "split-into-parts" может занимать очень много место вертикально,
|
||||
возможно стоит придумать максимальную высоту и скролл\сворачивание
|
||||
- [ ] просмотр картинки в оригинальном размере, и возможно с зумом отдельных
|
||||
областей, чтобы просмотреть мелкие артефакты, выбор разных подложек -
|
||||
черная\белая\цветные\серая для проверки прозрачных картинок
|
||||
- [ ] обдумать объединение пар `inputMode + source` и `resultKind + result` в
|
||||
единую структуру, позволит упростить некоторые вещи - например
|
||||
`sourceValue` \ `resultValue` в `SchemaPreview.svelte`
|
||||
|
||||
@@ -102,6 +102,10 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
/* Вложен в PreviewTile.canvas: без растяжения сжимался по контенту и
|
||||
ломал parts-grid в одну колонку. */
|
||||
width: 100%;
|
||||
align-self: stretch;
|
||||
min-height: clamp(var(--space-brand), 30vh, 60vh);
|
||||
border: var(--size-border) solid var(--color-border);
|
||||
border-radius: var(--radius-s);
|
||||
|
||||
@@ -309,7 +309,7 @@
|
||||
const base = toDisplayError(e);
|
||||
const msg = base.kind === "i18n" ? t(base.key, base.vars) : base.text;
|
||||
throw new Error(
|
||||
t("chain.stepError", {
|
||||
t("steps.stepError", {
|
||||
n: i + 1,
|
||||
title: stepTitle(stepTool.id),
|
||||
msg,
|
||||
|
||||
@@ -699,18 +699,18 @@ describe("split-into-parts", () => {
|
||||
}
|
||||
});
|
||||
|
||||
it("работает максимум 6x6 = 36 частей", async () => {
|
||||
it("принимает максимальную сетку 32x32 = 1024 части (потолок стража)", async () => {
|
||||
const tool = TOOLS.find((t) => t.id === "split-into-parts")!;
|
||||
const files = asFiles(
|
||||
await tool.run({
|
||||
source: solid(120, 120),
|
||||
params: sanitizeSchemaParams(tool.schema, {
|
||||
columns: 6,
|
||||
rows: 6,
|
||||
columns: 32,
|
||||
rows: 32,
|
||||
}),
|
||||
}),
|
||||
).files;
|
||||
expect(files).toHaveLength(36);
|
||||
expect(files).toHaveLength(1024);
|
||||
});
|
||||
|
||||
it("выбрасывает errors.tooManyParts при переполнении", () => {
|
||||
|
||||
@@ -402,7 +402,7 @@ const tileTool: Tool<TileParams> = {
|
||||
run: imgTool((img, p) => tile(img, p.columns, p.rows)),
|
||||
};
|
||||
|
||||
const MAX_SPLIT_PARTS = 1000;
|
||||
const MAX_SPLIT_PARTS = 1024;
|
||||
|
||||
interface SplitPartsParams {
|
||||
columns: number;
|
||||
@@ -413,14 +413,14 @@ export const splitPartsSchema = toolSchema<SplitPartsParams>({
|
||||
columns: field.number({
|
||||
label: "fields.columns",
|
||||
min: 1,
|
||||
max: 6,
|
||||
max: 32,
|
||||
step: 1,
|
||||
default: 2,
|
||||
}),
|
||||
rows: field.number({
|
||||
label: "fields.rows",
|
||||
min: 1,
|
||||
max: 6,
|
||||
max: 32,
|
||||
step: 1,
|
||||
default: 2,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user