Skip to content
OlegChe77Public

About

Растр — бесплатный конвертер изображений и документов в браузере. Пресеты фото для Госуслуг, Ozon, Wildberries, Авито и Telegram, удаление метаданных (EXIF, GPS). Без загрузки файлов на сервер

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Логотип Растра

Растр — конвертер изображений и документов

Бесплатный онлайн-конвертер картинок (14 форматов) и документов: PDF, Word, Excel, CSV, Markdown.
Всё работает прямо в браузере — файлы не загружаются на сервер.

Главная страница Растра

Структура сайта

  • Главная / рассказывает о сервисе: три раздела, как это работает, почему без сервера, все конвертеры, форматы и вопросы. Самого конвертера на главной нет — кнопки ведут в нужный раздел.
  • Картинки /konverter-izobrazhenij/ — конвертер изображений и инструкция, как с ним работать.
  • Документы /dokumenty/ — конвертер PDF, Word, Excel, CSV, TXT и Markdown.
  • Инструменты /instrumenty/ — сжать фото, сжать до N КБ, изменить размер.
  • Плюс посадочные страницы под частые запросы («HEIC в JPG», «Объединить PDF» и т. д.), справочник форматов, инструкция и правовые страницы.

Главная: три раздела — картинки, документы, инструменты

Конвертер изображений

  • 14 форматов на выход: PNG, JPG, WEBP, AVIF, GIF, BMP, ICO, TIFF, TGA, PDF, SVG, PPM, PGM, Base64.
  • 12 форматов на вход: PNG, JPEG, WEBP, AVIF, GIF, BMP, ICO, SVG, TIFF, HEIC (фото с iPhone), TGA, PPM/PGM/PBM.
  • Пакетная обработка: сотни файлов за раз, результат одним ZIP-архивом.
  • Настройки: качество, фон вместо прозрачности, размер (в процентах, по ширине/высоте, в рамку), поворот и отражение, палитра GIF, размеры внутри ICO.
  • PDF из картинок: собрать сканы и фото в один многостраничный документ.
  • Сравнение «до/после» и экономия веса по каждому файлу.
  • Приватность: конвертация на устройстве пользователя, без регистрации. Картинки никуда не передаются.
  • Яндекс Метрика с Вебвизором (номер — в site.config.mjs): работает только на боевом домене, очередь файлов и окно сравнения скрыты от записи классом ym-hide-content, есть уведомление о cookies.
  • Счётчик посещений в подвале (hits.sh): без cookies и скриптов слежки, включается в site.config.mjs.
  • Светлая и тёмная тема, адаптивная вёрстка для телефонов.

Конвертер: три файла переведены в WEBP, вес уменьшился на 85–99%

Тёмная тема Версия для телефона
Тёмная тема На телефоне

Конвертер документов

Раздел /dokumenty/ и 15 страниц под запросы. Всё так же работает в браузере, без загрузки файлов на сервер.

Конвертер документов: Word, CSV и Markdown переведены в PDF

Исходный файл Во что
PDF JPG, PNG, TXT, Word; объединить, разделить
Word (DOCX) PDF, TXT, HTML, Markdown
TXT, Markdown, HTML PDF, Word, HTML, TXT, Markdown
Excel (XLSX, XLS, ODS), CSV, JSON CSV, Excel, JSON, PDF

Страницы: /pdf-v-jpg/, /pdf-v-png/, /pdf-v-word/, /pdf-v-txt/, /obedinit-pdf/, /razdelit-pdf/, /word-v-pdf/, /word-v-txt/, /word-v-html/, /txt-v-pdf/, /txt-v-word/, /markdown-v-html/, /markdown-v-pdf/, /excel-v-csv/, /csv-v-excel/.

Как устроено: все форматы сводятся к общему промежуточному виду (заголовки, абзацы, списки, таблицы, картинки), из которого собираются PDF, Word, HTML, текст и Markdown. PDF с кириллицей набирается шрифтом PT Sans. Ограничение: PDF в Word переносит только текст — вёрстку PDF без сервера не восстановить, а сканы без текстового слоя не распознаются (об этом честно написано на страницах).

Инструменты для фото

Отдельный раздел /instrumenty/: Сжать фото, Сжать до N КБ и Размер фото. Каждый инструмент открывается как самостоятельный сервис: только подходящие форматы, кнопка по действию («Сжать фото», «Изменить размер»), свои настройки первыми. В «Размере фото» есть формат «Как было» — каждый файл остаётся в своём формате.

Удаление метаданных

Инструмент /udalit-metadannye-foto/: перед обработкой показывает, что найдено в файле (GPS, камера, дата съёмки, программа, IPTC, XMP), затем удаляет это.

  • JPEG и PNG очищаются без пересжатия: из файла вырезаются служебные блоки, пиксели не трогаются. Профиль цвета остаётся. Если в EXIF записан поворот, в файл возвращается крошечный EXIF только с ним, иначе фото ляжет набок.
  • HEIC, WEBP, TIFF и другие пересохраняются через холст, метаданные при этом пропадают.
  • К имени результата добавляется «-без-метаданных». Код: RastrConvert.meta.read() и RastrConvert.meta.strip() в src/assets/rastr-convert.js.

Фото под требования сайтов

Раздел /foto-pod-trebovaniya/ и пять пресетов: Госуслуги (/foto-dlya-gosuslug/), Ozon (/foto-dlya-ozon/), Wildberries (/foto-dlya-wildberries/), Авито (/foto-dlya-avito/) и стикер Telegram (/stiker-telegram-iz-foto/). Каждый открывает конвертер уже настроенным: размер в пикселях, пропорции, формат и вес. После обработки у файла появляется отметка «Подходит» или причина, по которой файл не проходит.

В «Размере» добавлены два режима: «Заполнить рамку» обрезает края до нужных пропорций, «Вписать с полями» оставляет картинку целиком и заливает свободные места выбранным цветом.

Пресет описывается в src/content/landings.mjs (kind: 'preset'). Поле preset.checks задаёт требования для проверки: formats, minW, minH, maxW, maxH, ratio: [ширина, высота], maxBytes. Числа собраны из открытых руководств на сентябрь 2026 года, площадки меняют правила, поэтому перед важной загрузкой стоит сверяться с самим сайтом.

Страницы под поиск

Кроме главной и разделов, у сайта десятки посадочных страниц под частые запросы. На каждой свой текст, вопросы и ответы, а конвертер открывается уже настроенным под задачу.

Блок популярных конвертеров

Страница Главный запрос
/ онлайн-конвертер картинок и документов (обзор сервиса)
/konverter-izobrazhenij/ конвертер изображений онлайн
/dokumenty/ конвертер документов онлайн
/png-v-jpg/ png в jpg
/jpg-v-png/ jpg в png
/heic-v-jpg/ heic в jpg
/webp-v-jpg/ webp в jpg
/webp-v-png/ webp в png
/jpg-v-webp/ jpg в webp
/png-v-webp/ png в webp
/avif-v-jpg/ avif в jpg
/jpg-v-pdf/ jpg в pdf
/png-v-ico/ png в ico, создать favicon
/svg-v-png/ svg в png
/tiff-v-jpg/ tiff в jpg
/instrumenty/ инструменты для фото (раздел со всеми инструментами)
/szhat-foto/ сжать фото
/izmenit-razmer-foto/ изменить размер фото
/formaty/ форматы изображений

Страница «Конвертер HEIC в JPG онлайн»

Что настроено для SEO: статический HTML без необходимости выполнять JavaScript, понятные адреса, уникальные title / description / H1, canonical, Open Graph с отдельной картинкой-превью для каждой страницы, разметка schema.org (WebApplication, FAQPage, BreadcrumbList, WebSite, Article), хлебные крошки, перелинковка без страниц-сирот, sitemap.xml, robots.txt, страница 404 со статусом 404 и noindex, favicon и манифест. Всё это проверяется автотестами.

Как устроен проект

Папка / файл Что это
src/assets/rastr-convert.js Плагин конвертации без зависимостей: кодировщики GIF, BMP, ICO, TIFF, TGA, PDF, ZIP и др.
src/assets/app.js, site.css Интерфейс конвертера картинок и стили
src/assets/rastr-docs.js, docs.js Движок и интерфейс конвертера документов
src/content/documents.mjs Тексты и настройки страниц конвертера документов
src/content/landings.mjs Тексты и настройки посадочных страниц
src/content/formats.mjs Справочник форматов
src/pages.mjs, src/layout.mjs Страницы, шаблон, метатеги и разметка
tools/build.mjs Сборка сайта в dist/, sitemap, robots, манифест
tools/icons.mjs, tools/screenshots.mjs Иконки, превью для соцсетей и скриншоты для README
tools/check-live.mjs Проверка опубликованного сайта
tests/ Модульные, сквозные и SEO-тесты
render.yaml Настройки публикации на Render
site.config.mjs Адрес сайта и коды Яндекс Вебмастера / Google Search Console

Запуск на своём компьютере

Нужны Node.js 24 и Python (для локального сервера).

npm install
npm start          # собрать и открыть на http://localhost:5173

Другие команды:

npm run build      # собрать сайт в dist/
npm test           # собрать и прогнать все тесты (нужен Chrome или Edge)
npm run icons      # перерисовать иконки и превью после смены логотипа
npm run screenshots # переснять скриншоты для README

Публикация на Render

Сайт статический, поэтому на Render он размещается бесплатно как Static Site. Все настройки лежат в render.yaml.

  1. На dashboard.render.com: New → Blueprint, подключите GitHub и выберите этот репозиторий.
  2. Render спросит SITE_URL — впишите будущий адрес, например https://rastr.onrender.com. Если Render выдаст другой адрес, исправьте переменную в Environment и нажмите Manual Deploy.
  3. После деплоя проверьте живой сайт:
    npm run check:live -- https://rastr.onrender.com
  4. Дальше каждый git push в main публикуется автоматически.

Свой домен: Settings → Custom Domains, затем поменяйте SITE_URL на новый адрес.

Индексация

  1. Яндекс Вебмастер: добавьте сайт, подтвердите метатегом (код — в yandexVerification в site.config.mjs), добавьте sitemap.xml.
  2. Google Search Console: то же самое, код — в googleVerification.

Плагин для своего сайта

<script src="rastr-convert.js"></script>
<script>
  const res = await RastrConvert.convert(file, 'webp', {
    quality: 0.8,
    resize: { mode: 'width', width: 1200 }
  });
  // res.blob — готовый файл, res.name — «photo.webp»
</script>

Также доступны formats(), decode(), encode(), zip(), pdfFromCanvases() и register() для своих форматов.

Безопасность

  • Content Security Policy в каждой странице: скрипты только с сайта и трёх закреплённых версий декодеров на jsDelivr, встроенные скрипты запрещены, object-src 'none', �ase-uri 'self'. 'unsafe-eval' оставлен только ради декодера HEIC (heic2any собран Emscripten).
  • Subresource Integrity: у всех библиотек с CDN (TIFF, HEIC, pdf.js и его Worker, pdf-lib, fontkit, mammoth, docx, marked, SheetJS) и у шрифта PT Sans проверяется хэш — подменённый файл браузер не запустит. Тест проверяет это на подменённом файле.
  • Заголовки (в ender.yaml): HSTS, X-Content-Type-Options, X-Frame-Options и rame-ancestors, Referrer-Policy, Permissions-Policy, Cross-Origin-Opener-Policy.
  • Имена файлов и сообщения выводятся с экранированием, пользовательские SVG открываются только как картинки.
  • Зависимостей у сайта нет; pm audit — 0 уязвимостей.

Всё это проверяется в ests/security.test.mjs, а на живом сайте — командой pm run check:live.

Лицензии сторонних компонентов

Загружаются с CDN только при необходимости: UTIF.js и pako (TIFF), heic2any и libheif (HEIC), pdf.js (Apache-2.0), pdf-lib и fontkit (MIT), mammoth (BSD-2-Clause), docx (MIT), marked (MIT), SheetJS Community Edition (Apache-2.0). Шрифты Unbounded, Onest, JetBrains Mono и PT Sans — SIL Open Font License 1.1. Подробности — на странице /licenzii/.

About

Растр — бесплатный конвертер изображений и документов в браузере. Пресеты фото для Госуслуг, Ozon, Wildberries, Авито и Telegram, удаление метаданных (EXIF, GPS). Без загрузки файлов на сервер

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages