/
dinruspro
/
tutorial
Обзор
Документация
Войти
/
dinruspro
/
tutorial
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Image05/main.cpp
32 строки
767 B
EnergonV
Уроки теперь тоже здесь!
09 янв 2024, 19:25
09 янв 2024, 19:25
4b3ebd6
Код
Авторство
О чём код?
#include <CtrlLib/CtrlLib.h> #include <plugin/jpg/jpg.h> using namespace Upp; GUI_APP_MAIN { FileSel fs; fs.Type("Image file", "*.bmp;*.png;*.tif;*.tiff;*.jpg;*.jpeg;*.gif"); if(!fs.ExecuteOpen("Choose the image file to convert")) return; String fn = ~fs; JPGEncoder jpg(20); FileIn in(fn); One<StreamRaster> raster = StreamRaster::OpenAny(in); if(!raster) { Exclamation("Invalid input"); return; } FileOut out(fn + ".out.png"); jpg.SetStream(out); jpg.Create(raster->GetSize()); for(int i = 0; i < raster->GetHeight(); i++) { RasterLine l = raster->GetLine(i); Buffer<RGBA> out(raster->GetWidth()); for(int j = 0; j < raster->GetWidth(); j++) { out[j].g = out[j].b = out[j].r = l[j].g; out[j].a = 255; } jpg.WriteLine(out); } }