Бесплатный онлайн-конвертер картинок (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. - Светлая и тёмная тема, адаптивная вёрстка для телефонов.
![]() |
![]() |
| Тёмная тема | На телефоне |
Раздел /dokumenty/ и 15 страниц под запросы. Всё так же работает в браузере, без загрузки файлов на сервер.
| Исходный файл | Во что |
|---|---|
| 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/ |
форматы изображений |
Что настроено для 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 он размещается бесплатно как Static Site. Все настройки лежат в render.yaml.
- На dashboard.render.com: New → Blueprint, подключите GitHub и выберите этот репозиторий.
- Render спросит
SITE_URL— впишите будущий адрес, напримерhttps://rastr.onrender.com. Если Render выдаст другой адрес, исправьте переменную в Environment и нажмите Manual Deploy. - После деплоя проверьте живой сайт:
npm run check:live -- https://rastr.onrender.com
- Дальше каждый
git pushвmainпубликуется автоматически.
Свой домен: Settings → Custom Domains, затем поменяйте SITE_URL на новый адрес.
- Яндекс Вебмастер: добавьте сайт, подтвердите метатегом (код — в
yandexVerificationвsite.config.mjs), добавьтеsitemap.xml. - 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/.







