diff --git a/README.md b/README.md index f7ccbd7..61c8062 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ if you want to input text in real time: make ./fremen ``` +Press *f2* to take a screenshot and *f3* to capture only generated text ## TODO: - [X] Add text box instead of passing an argument diff --git a/src/main.c b/src/main.c index 243834c..760b8e7 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,5 @@ #include +#include #include #include "raylib.h" @@ -150,9 +151,37 @@ void transcript(char* message, int *charcters){ } } +void screenshot(bool fullscreen, char* message){ + Image screenshot = LoadImageFromScreen(); + if(!fullscreen){ + ImageCrop(&screenshot, (Rectangle){ + (SCREEN_WIDTH/2)-((strlen(message)/2)*60)-5, + (SCREEN_HEIGHT/2)-5, + (64*(SCREEN_WIDTH/800)*strlen(message))+7, + (64*(SCREEN_HEIGHT/600))+7 + }); + char filename[strlen(message)+4]; + strcpy(filename, message); + strcat(filename, ".png"); + ExportImage(screenshot, filename); + } + else{ + int file_count = 1; + char filename[strlen("screenshot")+10]; + strcpy(filename, "screenshot.png"); + while(FileExists(filename)){ + strcpy(filename, ""); + sprintf(filename, "screenshot%d.png", file_count); + file_count++; + } + ExportImage(screenshot, filename); + } +} + char TextBuffer[MAX_STRING_LENGTH + 1] = "\0"; int LetterCount = 0; bool cmd_flag = false; +int cursor_pos_backup = 0; int main(int argc, char *argv[]){ @@ -221,8 +250,11 @@ int main(int argc, char *argv[]){ while(!WindowShouldClose()){ if(IsKeyPressed(KEY_F2)){ - Image screenshot = LoadImageFromScreen(); - ExportImage(screenshot, "screenshot.png"); + screenshot(true, message); + } + + if(IsKeyPressed(KEY_F3)){ + screenshot(false, message); } transcript(message, charcters);