В останній день 2017 року в нашому щомісячному огляді всіх новин фріскейтингу ми писали про насувається проблему з неправильно масштабованими чернетками, також відому як Основна проблема #204 - Проблема з одиницями за замовчуванням в Inkscape.
Я не буду повторювати всі ці , але все зводиться до того, що супровідники Inkscape змінили внутрішній DPI (точок на дюйм) Inkscape з 90 до 96. Зміна набуває чинності починаючи з версії 0.92.
Якщо не позначити цю зміну, всі деталі з вільними контурами будуть неправильно масштабовані. Це тому, що ми використовуємо 90DPI у вихідному SVG-файлі і масштабуємо його відповідно.
Коли перехід на 96DPI набуде чинності, всі патерни будуть вимкнені на 6,66%. Це дійсно різниця, яка занадто мала, щоб її помітити, коли дивишся на візерунок, але достатньо , щоб повністю зіпсувати ваш одяг.
Це питання також є більш складним, ніж може здатися на перший погляд. Перш за все тому, що ми не можемо просто перейти на 96DPI, оскільки зараз існують дві версії , які використовують різні значення DPI за замовчуванням. Нам потрібне рішення, яке підійде обом.
Крім того, хоча будь-яке виправлення, яке ми впровадимо, стосуватиметься нових проектів, всі існуючі проекти, створені до виправлення, все одно будуть піддані впливу.
Іншими словами, якщо ви намалювали візерунок минулого тижня або місяць тому, він не буде правильно масштабуватися в новій версії Inkscape.
А оскільки ми використовуємо Inkscape у нашому ланцюжку інструментів для перетворення SVG у PDF, він також буде неправильно масштабований , якщо ви зайдете сюди і завантажите PDF.
Очевидно, що треба було щось робити. І швидко.
Виправлення для нових чернеток
Починаючи з сьогоднішнього випуску ядра v1.3.0, наші SVG-файли більше не залежать від налаштувань DPI.
Замість того, щоб використовувати внутрішні одиниці виміру і застосовувати SVG-трансформацію для масштабування всього шаблону , ми прикрутили одиниці виміру до мм і оновили SVG viewBox, щоб застосувати масштабування.
Очевидно, що так треба було робити з самого початку. Кожен день - це шкільний день.
Якщо вас турбує використання мм у вашому проекті (тому що ви звикли до імперських одиниць), будьте впевнені, що ці мм залишаться під капотом. Ви не зможете відрізнити їх.
Виправлення попередньо створених чернеток
Щоб уникнути проблем з уже існуючими чернетками, нам потрібно було придумати рішення і для них.
По суті, у нас є два варіанти:
- Переробіть всі ці чернетки
- Виправте їх на місці, не змінюючи сам проект
Повторне створення чернетки виправляє проблему, оскільки кожна нова чернетка буде оброблятися останньою версією ядра , яка містить виправлення.
Однак ядро також постачається з регулярними оновленнями, твіками та виправленнями в самих шаблонах. Отже, якщо ви переробите чернетку, створену на попередній версії ядра, немає жодних гарантій, що чернетка не зміниться.
В принципі, така зміна завжди буде покращенням. Але що для когось баг, то для когось особливість, і ми вважаємо за краще не переносити ваш сир.
Тому замість цього ми вирішили виправити всі чернетки, які ми маємо у файлі, за допомогою нового коду масштабування, , не торкаючись жодного іншого аспекту чернетки.
Коли ви читаєте цю статтю, це вже зроблено, і всі фріскейли тепер мають правильно масштабуватися. Скрізь.
Також: поінформованість про версії
Ми також внесли зміни в наші внутрішні системи, щоб зберігати версію ядра freesewing, з якої згенерував ваш чернетку.
Якщо з моменту створення чернетки ми впровадили нові функції або виправили помилки, ви отримаєте сповіщення на про те, що оновлення доступне:
Оновлювати чернетку чи ні - вирішувати вам. Якщо ви не хочете втратити інформацію у вашій старій чернетці , замість того, щоб оновлювати її на місці, ви можете розгалузити її.