| 9 | #include <engine/gfx/image_manipulation.h> |
| 10 | |
| 11 | static bool DilateFile(const char *pFilename, bool DryRun) |
| 12 | { |
| 13 | CImageInfo Image; |
| 14 | int PngliteIncompatible; |
| 15 | if(!CImageLoader::LoadPng(io_open(pFilename, IOFLAG_READ), pFilename, Image, PngliteIncompatible)) |
| 16 | return false; |
| 17 | |
| 18 | if(Image.m_Format != CImageInfo::FORMAT_RGBA) |
| 19 | { |
| 20 | log_error("dilate", "ERROR: only RGBA PNG images are supported"); |
| 21 | Image.Free(); |
| 22 | return false; |
| 23 | } |
| 24 | |
| 25 | if(DryRun) |
| 26 | { |
| 27 | CImageInfo OldImage = Image.DeepCopy(); |
| 28 | DilateImage(Image); |
| 29 | const bool EqualImages = Image.DataEquals(OldImage); |
| 30 | Image.Free(); |
| 31 | OldImage.Free(); |
| 32 | log_info("dilate", "'%s' is %sdilated", pFilename, EqualImages ? "" : "NOT "); |
| 33 | return EqualImages; |
| 34 | } |
| 35 | else |
| 36 | { |
| 37 | DilateImage(Image); |
| 38 | const bool SaveResult = CImageLoader::SavePng(io_open(pFilename, IOFLAG_WRITE), pFilename, Image); |
| 39 | Image.Free(); |
| 40 | return SaveResult; |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | int main(int argc, const char **argv) |
| 45 | { |
no test coverage detected