Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
2DGL_DrawGIF.c
00001 /********************************************************************* 00002 * SEGGER Microcontroller GmbH * 00003 * Solutions for real time microcontroller applications * 00004 ********************************************************************** 00005 * * 00006 * (c) 1996 - 2018 SEGGER Microcontroller GmbH * 00007 * * 00008 * Internet: www.segger.com Support: support@segger.com * 00009 * * 00010 ********************************************************************** 00011 00012 ** emWin V5.48 - Graphical user interface for embedded applications ** 00013 All Intellectual Property rights in the Software belongs to SEGGER. 00014 emWin is protected by international copyright laws. Knowledge of the 00015 source code may not be used to write a similar product. This file may 00016 only be used in accordance with the following terms: 00017 00018 The software has been licensed to Cypress Semiconductor Corporation, 00019 whose registered office is situated at 198 Champion Ct. San Jose, CA 00020 95134 USA solely for the purposes of creating libraries for Cypress 00021 PSoC3 and PSoC5 processor-based devices, sublicensed and distributed 00022 under the terms and conditions of the Cypress End User License 00023 Agreement. 00024 Full source code is available at: www.segger.com 00025 00026 We appreciate your understanding and fairness. 00027 ---------------------------------------------------------------------- 00028 Licensing information 00029 Licensor: SEGGER Microcontroller Systems LLC 00030 Licensed to: Cypress Semiconductor Corp, 198 Champion Ct., San Jose, CA 95134, USA 00031 Licensed SEGGER software: emWin 00032 License number: GUI-00319 00033 License model: Services and License Agreement, signed June 10th, 2009 00034 Licensed platform: Any Cypress platform (Initial targets are: PSoC3, PSoC5) 00035 ---------------------------------------------------------------------- 00036 Support and Update Agreement (SUA) 00037 SUA period: 2009-06-12 - 2022-07-27 00038 Contact to extend SUA: sales@segger.com 00039 ---------------------------------------------------------------------- 00040 File : 2DGL_DrawGIF.c 00041 Purpose : Shows how to render GIF images 00042 Requirements: WindowManager - ( ) 00043 MemoryDevices - ( ) 00044 AntiAliasing - ( ) 00045 VNC-Server - ( ) 00046 PNG-Library - ( ) 00047 TrueTypeFonts - ( ) 00048 ---------------------------------------------------------------------- 00049 */ 00050 00051 #include "GUI.h" 00052 00053 /********************************************************************* 00054 * 00055 * Defines 00056 * 00057 ********************************************************************** 00058 */ 00059 // 00060 // Recommended memory to run the sample with adequate performance 00061 // 00062 #define RECOMMENDED_MEMORY (1024L * 20) 00063 00064 /******************************************************************* 00065 * 00066 * Static data 00067 * 00068 ******************************************************************** 00069 */ 00070 static unsigned const char _acImage0[] = { 00071 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x30, 0x00, 0x30, 0x00, 0xF3, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFB, 0xF3, 0x05, 0xFF, 0x64, 0x03, 0xDD, 0x09, 0x07, 0xF2, 0x08, 0x84, 0x47, 0x00, 0xA5, 0x00, 0x00, 0xD3, 0x02, 0xAB, 0xEA, 0x1F, 0xB7, 0x14, 00072 0x00, 0x64, 0x12, 0x56, 0x2C, 0x05, 0x90, 0x71, 0x3A, 0xBF, 0xBF, 0xBF, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x21, 0xFF, 0x0B, 0x4E, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2E, 0x30, 0x03, 0x01, 0x00, 0x00, 0x00, 00073 0x21, 0xFE, 0x30, 0x54, 0x68, 0x69, 0x73, 0x20, 0x47, 0x49, 0x46, 0x20, 0x46, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x40, 0x0D, 0x0A, 00074 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x61, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x0D, 0x0A, 00075 0x00, 0x21, 0xF9, 0x04, 0x09, 0x0A, 00076 0x00, 0x0C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x03, 0x04, 0xDB, 0x90, 0xC9, 0x49, 0xAB, 0xBD, 0x38, 0xEB, 0x2D, 0x9F, 0xFF, 0x0F, 0x27, 0x72, 0x60, 0x60, 0x9E, 0x01, 0x38, 0xAE, 0xDD, 0x83, 0xBE, 0xB0, 0xC7, 0x6E, 00077 0x1E, 0x6C, 0xC7, 0xE1, 0x5C, 0xD5, 0x77, 0xFF, 0xCA, 0x3A, 0x86, 0xCB, 0x47, 0xFC, 0xE9, 0x86, 0xC5, 0xA4, 0x29, 0x37, 0x42, 0x2A, 0x95, 0x4C, 0xDA, 0x73, 0xBA, 0x24, 0xDD, 0x3E, 0x45, 0xEC, 0x55, 0x8A, 0xD3, 0x5E, 0x4B, 0xB6, 0xA8, 0xC5, 00078 0x79, 0x02, 0x79, 0x7F, 0x66, 0x72, 0x39, 0xA3, 0x4E, 0xA5, 0xBF, 0xE6, 0xED, 0xA5, 0xED, 0x8E, 0x87, 0xDF, 0xF2, 0x5D, 0xCF, 0x0E, 0xE7, 0xE5, 0x27, 0x74, 0x65, 0x7E, 0x7B, 0x83, 0x7F, 0x42, 0x54, 0x88, 0x31, 0x7A, 0x89, 0x8C, 0x29, 0x8B, 00079 0x8D, 0x88, 0x51, 0x81, 0x90, 0x59, 0x80, 0x94, 0x8C, 0x4C, 0x93, 0x97, 0x7B, 0x96, 0x9B, 0x54, 0x99, 0x9E, 0x9F, 0x9D, 0xA1, 0x50, 0xA3, 0x77, 0x9A, 0x38, 0x44, 0x92, 0x5F, 0x91, 0x67, 0x46, 0x14, 0x6D, 0xAE, 0x4F, 0xB2, 0x55, 0xB0, 0x61, 00080 0x29, 0x98, 0xB8, 0x61, 0x8F, 0xA9, 0x9F, 0xAA, 0x63, 0x84, 0xB3, 0x9A, 0x62, 0x1D, 0x3E, 0x85, 0x77, 0x49, 0xC4, 0xC5, 0x84, 0x74, 0xC7, 0x86, 0xB6, 0xAA, 0x69, 0xCE, 0x9C, 0x6C, 0xA4, 0xBB, 0x1A, 0xA8, 0x94, 0xCA, 0xBC, 0xD6, 0xDB, 0xC0, 00081 0xD6, 0x8E, 0x2B, 0xD9, 0x53, 0xDE, 0xD5, 0x9E, 0xE5, 0xD8, 0xE3, 0x84, 0x41, 0xB0, 0xEA, 0x28, 0x40, 0xEC, 0x3B, 0xEA, 0xF0, 0xF1, 0x73, 0xB4, 0x2A, 0xF5, 0x4D, 0x69, 0xF9, 0xFC, 0xFD, 0xFE, 0x41, 0x11, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x0A, 00082 0x00, 0x0C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x03, 0x04, 0xDB, 0x90, 0xC9, 0x49, 0xAB, 0xBD, 0x38, 0xEB, 0x2D, 0x9F, 0xFF, 0x0F, 0x27, 0x72, 0x60, 0x60, 0x9E, 0x01, 0x38, 0xAE, 0xDD, 0x83, 0xBE, 0xB0, 0xC7, 0x6E, 00083 0x1E, 0x6C, 0xC7, 0xE1, 0x5C, 0xD5, 0x77, 0xFF, 0xCA, 0x3A, 0x86, 0xCB, 0x47, 0xFC, 0xE9, 0x86, 0xC5, 0xA4, 0x29, 0x37, 0x42, 0x2A, 0x95, 0x4C, 0xDA, 0x73, 0xBA, 0x24, 0xDD, 0x3E, 0x45, 0xEC, 0x55, 0x8A, 0xD3, 0x5E, 0x4B, 0xB6, 0xA8, 0xC5, 00084 0x79, 0x02, 0x79, 0x7F, 0x66, 0x72, 0x39, 0xA3, 0x4E, 0xA5, 0xBF, 0xE6, 0xED, 0xA5, 0xED, 0x8E, 0x87, 0xDF, 0xF2, 0x5D, 0xCF, 0x0E, 0xE7, 0xE5, 0x27, 0x74, 0x65, 0x7E, 0x7B, 0x83, 0x7F, 0x42, 0x54, 0x88, 0x31, 0x7A, 0x89, 0x8C, 0x29, 0x8B, 00085 0x8D, 0x88, 0x51, 0x81, 0x90, 0x59, 0x80, 0x94, 0x8C, 0x4C, 0x93, 0x97, 0x7B, 0x96, 0x9B, 0x54, 0x99, 0x9E, 0x9F, 0x9D, 0xA1, 0x50, 0xA3, 0x77, 0x9A, 0x38, 0x44, 0x92, 0x5F, 0x91, 0x67, 0x46, 0x14, 0x6D, 0xAE, 0x4F, 0xB2, 0x55, 0xB0, 0x61, 00086 0x29, 0x98, 0xB8, 0x61, 0x8F, 0xA9, 0x9F, 0xAA, 0x63, 0x70, 0x50, 0x85, 0x8A, 0xC0, 0xA7, 0xC3, 0x78, 0x95, 0x73, 0xC6, 0x69, 0x60, 0xA5, 0x18, 0x74, 0xCC, 0xB4, 0xC9, 0xCF, 0x7D, 0xC3, 0xB3, 0x5C, 0xA4, 0xAF, 0x1A, 0xA8, 0x8D, 0x62, 0x6C, 00087 0xD9, 0xB5, 0x4D, 0xD9, 0xDE, 0x56, 0x9E, 0xE4, 0x22, 0xD6, 0x53, 0x40, 0x41, 0x2D, 0x89, 0xEB, 0xEC, 0xB0, 0xDC, 0x4B, 0xE7, 0xF0, 0x2D, 0xD6, 0x2A, 0xF5, 0x4D, 0x69, 0xF9, 0xFC, 0xFD, 0xFE, 0x41, 0x11, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x0A, 00088 0x00, 0x0C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x03, 0x04, 0xDB, 0x90, 0xC9, 0x49, 0xAB, 0xBD, 0x38, 0xEB, 0x2D, 0x9F, 0xFF, 0x0F, 0x27, 0x72, 0x60, 0x60, 0x9E, 0x01, 0x38, 0xAE, 0xDD, 0x83, 0xBE, 0xB0, 0xC7, 0x6E, 00089 0x1E, 0x6C, 0xC7, 0xE1, 0x5C, 0xD5, 0x77, 0xFF, 0xCA, 0x3A, 0x86, 0xCB, 0x47, 0xFC, 0xE9, 0x86, 0xC5, 0xA4, 0x29, 0x37, 0x42, 0x2A, 0x95, 0x4C, 0xDA, 0x73, 0xBA, 0x24, 0xDD, 0x3E, 0x45, 0xEC, 0x55, 0x8A, 0xD3, 0x5E, 0x4B, 0xB6, 0xA8, 0xC5, 00090 0x79, 0x02, 0x79, 0x7F, 0x66, 0x72, 0x39, 0xA3, 0x4E, 0xA5, 0xBF, 0xE6, 0xED, 0xA5, 0xED, 0x8E, 0x87, 0xDF, 0xF2, 0x5D, 0xCF, 0x0E, 0xE7, 0xE5, 0x27, 0x74, 0x65, 0x7E, 0x7B, 0x83, 0x7F, 0x42, 0x54, 0x88, 0x31, 0x7A, 0x89, 0x8C, 0x29, 0x8B, 00091 0x8D, 0x88, 0x51, 0x81, 0x90, 0x59, 0x80, 0x94, 0x8C, 0x4C, 0x93, 0x97, 0x7B, 0x96, 0x9B, 0x54, 0x99, 0x9E, 0x9F, 0x9D, 0xA1, 0x50, 0xA3, 0x77, 0x9A, 0x38, 0x44, 0x92, 0x5F, 0x91, 0x67, 0x46, 0x14, 0x6D, 0xAE, 0x4F, 0xB2, 0x55, 0xB0, 0x61, 00092 0x29, 0x98, 0xB8, 0x61, 0x8F, 0xA9, 0x9F, 0xAA, 0x63, 0x84, 0xB3, 0x9A, 0x62, 0x1D, 0x3E, 0x85, 0x77, 0x49, 0xC4, 0xC5, 0x84, 0x74, 0xC7, 0x86, 0xB6, 0xAA, 0x69, 0xCE, 0x9C, 0x6C, 0xA4, 0xBB, 0x1A, 0xA8, 0x94, 0xCA, 0xBC, 0xD6, 0xDB, 0xC0, 00093 0xD6, 0x8E, 0x2B, 0xD9, 0x53, 0xDE, 0xD5, 0x9E, 0xE5, 0xD8, 0xE3, 0x84, 0x41, 0xB0, 0xEA, 0x28, 0x40, 0xEC, 0x3B, 0xEA, 0xF0, 0xF1, 0x73, 0xB4, 0x2A, 0xF5, 0x4D, 0x69, 0xF9, 0xFC, 0xFD, 0xFE, 0x41, 0x11, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x0A, 00094 0x00, 0x0C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x03, 0x04, 0xDB, 0x90, 0xC9, 0x49, 0xAB, 0xBD, 0x38, 0xEB, 0x2D, 0x9F, 0xFF, 0x0F, 0x27, 0x72, 0x60, 0x60, 0x9E, 0x01, 0x38, 0xAE, 0xDD, 0x83, 0xBE, 0xB0, 0xC7, 0x6E, 00095 0x1E, 0x6C, 0xC7, 0xE1, 0x5C, 0xD5, 0x77, 0xFF, 0xCA, 0x3A, 0x86, 0xCB, 0x47, 0xFC, 0xE9, 0x86, 0xC5, 0xA4, 0x29, 0x37, 0x42, 0x2A, 0x95, 0x4C, 0xDA, 0x73, 0xBA, 0x24, 0xDD, 0x3E, 0x45, 0xEC, 0x55, 0x8A, 0xD3, 0x5E, 0x4B, 0xB6, 0xA8, 0xC5, 00096 0x79, 0x02, 0x79, 0x7F, 0x66, 0x72, 0x39, 0xA3, 0x4E, 0xA5, 0xBF, 0xE6, 0xED, 0xA5, 0xED, 0x8E, 0x87, 0xDF, 0xF2, 0x5D, 0xCF, 0x0E, 0xE7, 0xE5, 0x27, 0x74, 0x65, 0x7E, 0x7B, 0x83, 0x7F, 0x42, 0x54, 0x88, 0x31, 0x7A, 0x89, 0x8C, 0x29, 0x8B, 00097 0x8D, 0x88, 0x51, 0x81, 0x90, 0x59, 0x80, 0x94, 0x8C, 0x4C, 0x93, 0x97, 0x7B, 0x96, 0x9B, 0x54, 0x99, 0x9E, 0x9F, 0x9D, 0xA1, 0x50, 0xA3, 0x5F, 0x9F, 0x85, 0x46, 0xA6, 0x68, 0xA9, 0x59, 0x74, 0x62, 0xAF, 0xAD, 0x49, 0x67, 0x6B, 0x14, 0xAF, 00098 0x29, 0x98, 0xB8, 0x8A, 0xB6, 0x44, 0x9A, 0x77, 0x9C, 0x8F, 0x70, 0x50, 0xB2, 0x62, 0x1D, 0xC3, 0x60, 0x28, 0x7C, 0xAA, 0x63, 0x53, 0x69, 0xCE, 0x6D, 0xC5, 0xAB, 0xC7, 0xCE, 0x86, 0xC1, 0xA8, 0xC8, 0xCB, 0x18, 0xBE, 0x94, 0xD1, 0xD6, 0xA4, 00099 0xDD, 0xCC, 0xA4, 0x55, 0x2B, 0xDB, 0xCD, 0x47, 0xA1, 0xE0, 0x34, 0xE5, 0x84, 0x41, 0xB6, 0xEB, 0xC9, 0xE9, 0x33, 0xB2, 0x77, 0xED, 0xEA, 0xAD, 0x2A, 0xF5, 0xE4, 0x69, 0xF9, 0xFC, 0xFD, 0xFE, 0xFC, 0x11, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x0A, 00100 0x00, 0x0C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x03, 0x04, 0xDB, 0x90, 0xC9, 0x49, 0xAB, 0xBD, 0x38, 0xEB, 0x2D, 0x9F, 0xFF, 0x0F, 0x27, 0x72, 0x60, 0x60, 0x9E, 0x01, 0x38, 0xAE, 0xDD, 0x83, 0xBE, 0xB0, 0xC7, 0x6E, 00101 0x1E, 0x6C, 0xC7, 0xE1, 0x5C, 0xD5, 0x77, 0xFF, 0xCA, 0x3A, 0x86, 0xCB, 0x47, 0xFC, 0xE9, 0x86, 0xC5, 0xA4, 0x29, 0x37, 0x42, 0x2A, 0x95, 0x4C, 0xDA, 0x73, 0xBA, 0x24, 0xDD, 0x3E, 0x45, 0xEC, 0x55, 0x8A, 0xD3, 0x5E, 0x4B, 0xB6, 0xA8, 0xC5, 00102 0x79, 0x02, 0x79, 0x7F, 0x66, 0x72, 0x39, 0xA3, 0x4E, 0xA5, 0xBF, 0xE6, 0xED, 0xA5, 0xED, 0x8E, 0x87, 0xDF, 0xF2, 0x5D, 0xCF, 0x0E, 0xE7, 0xE5, 0x27, 0x74, 0x65, 0x7E, 0x7B, 0x83, 0x7F, 0x42, 0x54, 0x88, 0x31, 0x7A, 0x89, 0x8C, 0x29, 0x8B, 00103 0x8D, 0x88, 0x51, 0x81, 0x90, 0x59, 0x80, 0x94, 0x8C, 0x4C, 0x93, 0x97, 0x7B, 0x96, 0x9B, 0x54, 0x99, 0x9E, 0x9F, 0x9D, 0xA1, 0x50, 0xA3, 0x77, 0x9A, 0x38, 0x44, 0x92, 0x5F, 0x91, 0x67, 0x46, 0x14, 0x6D, 0xAE, 0x4F, 0xB2, 0x55, 0xB0, 0x61, 00104 0x29, 0x98, 0xB8, 0x61, 0x8F, 0xA9, 0x9F, 0xAA, 0x63, 0x84, 0xB3, 0x9A, 0x62, 0x1D, 0x3E, 0x85, 0x77, 0x49, 0xC4, 0xC5, 0x84, 0x74, 0xC7, 0x86, 0xB6, 0xAA, 0x69, 0xCE, 0x9C, 0x6C, 0xA4, 0xBB, 0x1A, 0xA8, 0x94, 0xCA, 0xBC, 0xD6, 0xDB, 0xC0, 00105 0xD6, 0x8E, 0x2B, 0xD9, 0x53, 0xDE, 0xD5, 0x9E, 0xE5, 0xD8, 0xE3, 0x84, 0x41, 0xB0, 0xEA, 0x28, 0x40, 0xEC, 0x3B, 0xEA, 0xF0, 0xF1, 0x73, 0xB4, 0x2A, 0xF5, 0x4D, 0x69, 0xF9, 0xFC, 0xFD, 0xFE, 0x41, 0x11, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x0A, 00106 0x00, 0x0C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x03, 0x04, 0xF2, 0x90, 0xC9, 0x49, 0xAB, 0xBD, 0x38, 0xEB, 0x2D, 0x9F, 0xFF, 0x0F, 0x27, 0x72, 0x60, 0x60, 0x9E, 0x01, 0x38, 0xAE, 0xDD, 0x83, 0xBE, 0xB0, 0xC7, 0x6E, 00107 0x1E, 0x6C, 0xC7, 0xE1, 0x5C, 0xD5, 0x77, 0xFF, 0xCA, 0x3A, 0x86, 0xCB, 0x47, 0xFC, 0xE9, 0x86, 0xC5, 0xA4, 0x29, 0x37, 0x42, 0x2A, 0x95, 0x4C, 0x9A, 0xED, 0x93, 0xA4, 0xC6, 0x48, 0xD3, 0x92, 0x0F, 0xE4, 0x3C, 0x45, 0x2F, 0xDD, 0x14, 0x37, 00108 0xEC, 0x1D, 0x5F, 0x33, 0xE4, 0x31, 0x79, 0x69, 0x3E, 0x83, 0xB3, 0xDC, 0x9E, 0x7A, 0x8A, 0x59, 0xCF, 0x6F, 0x77, 0x37, 0xC5, 0xDE, 0x86, 0x6B, 0xF5, 0x1D, 0x72, 0x7D, 0x38, 0x71, 0x78, 0x3B, 0x5B, 0x7F, 0x78, 0x89, 0x80, 0x6B, 0x65, 0x8D, 00109 0x28, 0x56, 0x72, 0x87, 0x4F, 0x94, 0x92, 0x13, 0x8F, 0x95, 0x94, 0x4C, 0x98, 0x98, 0x78, 0x44, 0x9B, 0x9F, 0x99, 0x29, 0x9F, 0x97, 0x88, 0xA2, 0x9C, 0xA5, 0x8A, 0xA2, 0x62, 0x5B, 0xA9, 0x38, 0xAB, 0x62, 0x8D, 0xA0, 0x90, 0x85, 0xA7, 0xB5, 00110 0x4B, 0x7B, 0x82, 0xB6, 0x96, 0xAE, 0x59, 0x95, 0x3C, 0x86, 0xB9, 0xA6, 0x50, 0xA8, 0xC2, 0x82, 0x9D, 0xB1, 0xA4, 0x93, 0xC7, 0xB2, 0x91, 0xC1, 0xCB, 0x82, 0x03, 0x6A, 0x1E, 0xD2, 0x9D, 0x5F, 0xBD, 0x78, 0x03, 0xD5, 0x5C, 0xDA, 0xD6, 0x68, 00111 0x55, 0xDA, 0xE1, 0xE2, 0xC8, 0xD7, 0xC6, 0x88, 0xE2, 0xD5, 0x55, 0x52, 0xC4, 0xCE, 0xCA, 0x1A, 0xC8, 0xAB, 0xE5, 0x6F, 0xB0, 0xBC, 0x22, 0xF0, 0x4F, 0xF2, 0xEF, 0xF4, 0x46, 0x41, 0xC0, 0xF1, 0xF9, 0x4D, 0xEE, 0xD1, 0x0A, 00112 0x52, 0xE7, 0x1E, 0x10, 0x82, 0x68, 0xDA, 0xB1, 0x39, 0x88, 0xD0, 0xDE, 0x98, 0x86, 0x10, 0x23, 0x4A, 0x84, 0x18, 0x01, 0x00, 0x21, 0xFE, 0x38, 0x46, 0x49, 0x4C, 0x45, 0x20, 0x49, 0x44, 0x45, 0x4E, 0x54, 0x49, 0x54, 0x59, 0x0D, 0x0A, 00113 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6F, 0x72, 0x20, 0x6D, 0x6F, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x0D, 0x0A, 00114 0x53, 0x79, 0x72, 0x75, 0x73, 0x73, 0x20, 0x4D, 0x63, 0x44, 0x61, 0x6E, 0x69, 0x65, 0x6C, 0x0D, 0x0A, 00115 0x00, 0x21, 0xFF, 0x0B, 0x47, 0x49, 0x46, 0x43, 0x4F, 0x4E, 0x6E, 0x62, 0x31, 0x2E, 0x30, 0x02, 0x06, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 00116 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x0A, 00117 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00118 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x3B, 0x00 00119 }; 00120 00121 /******************************************************************* 00122 * 00123 * Static functions 00124 * 00125 ******************************************************************** 00126 */ 00127 /******************************************************************* 00128 * 00129 * _ShowMovie 00130 * 00131 * Function description 00132 * Shows the contents of a GIF file as movie 00133 */ 00134 static void _ShowMovie(const char * pFile, int FileSize) { 00135 GUI_GIF_IMAGE_INFO ImageInfo = {0}; // Info structure of one particular GIF image of the GIF file 00136 GUI_GIF_INFO GifInfo = {0}; // Info structure of GIF file 00137 int i; 00138 int j; 00139 int XPos; 00140 int YPos; 00141 00142 // 00143 // Display sample information 00144 // 00145 GUI_SetFont(&GUI_Font8x16); 00146 GUI_ClearRect(0, 40, 319, 59); 00147 GUI_DispStringHCenterAt("Show complete GIF file as movie", 160, 40); 00148 // 00149 // Show movie 00150 // 00151 GUI_ClearRect(0, 60, 319, 239); // Clear the image area 00152 GUI_GIF_GetInfo(pFile, FileSize, &GifInfo); // Get GIF info structure 00153 XPos = (GifInfo.xSize > 320) ? 0 : 160 - (GifInfo.xSize / 2); 00154 YPos = (GifInfo.ySize > 180) ? 60 : 150 - (GifInfo.ySize / 2); 00155 for (i = 0; i < 2; i++) { // Show the complete GIF 2 times ... 00156 for (j = 0; j < GifInfo.NumImages; j++) { 00157 GUI_GIF_DrawSub(pFile, FileSize, XPos, YPos, j); // Draw sub image 00158 GUI_GIF_GetImageInfo(pFile, FileSize, &ImageInfo, j); // Get sub image information 00159 GUI_Delay(ImageInfo.Delay ? ImageInfo.Delay * 10 : 100); // Use the Delay member of the ImageInfo structure for waiting a while 00160 } 00161 GUI_Delay(2000); // Wait a while 00162 } 00163 } 00164 00165 /******************************************************************* 00166 * 00167 * _ShowSubImages 00168 * 00169 * Function description 00170 * Shows all sub images of a GIF file side by side 00171 */ 00172 static void _ShowSubImages(const char * pFile, int FileSize) { 00173 GUI_GIF_INFO GifInfo = {0}; // Info structure of GIF file 00174 int j; 00175 int XPos; 00176 int YPos; 00177 // 00178 // Display sample information 00179 // 00180 GUI_SetFont(&GUI_Font8x16); 00181 GUI_ClearRect(0, 40, 319, 59); 00182 GUI_DispStringHCenterAt("Show all sub images of a GIF file", 160, 40); 00183 // 00184 // Show sub images 00185 // 00186 GUI_ClearRect(0, 60, 319, 239); // Clear the image area 00187 GUI_GIF_GetInfo(pFile, FileSize, &GifInfo); // Get GIF info structure 00188 XPos = 160 - GifInfo.xSize * GifInfo.NumImages / 2; 00189 YPos = (GifInfo.ySize > 180) ? 60 : 150 - (GifInfo.ySize / 2); 00190 for (j = 0; j < GifInfo.NumImages; j++) { 00191 char acNumber[3] = "#"; 00192 acNumber[1] = '0' + j; 00193 GUI_DispStringHCenterAt(acNumber, XPos + GifInfo.xSize / 2, 90); 00194 GUI_GIF_DrawSub(pFile, FileSize, XPos, YPos, j); // Draw sub image 00195 XPos += GifInfo.xSize; 00196 } 00197 GUI_Delay(4000); // Wait a while 00198 } 00199 00200 /******************************************************************* 00201 * 00202 * _ShowComments 00203 * 00204 * Function description 00205 * Shows all comments of a GIF file 00206 */ 00207 static void _ShowComments(const char * pFile, int FileSize) { 00208 GUI_RECT Rect = {80, 100, 239, 199}; 00209 char acBuffer[256] = {0}; 00210 int CommentCnt; 00211 00212 // 00213 // Display sample information 00214 // 00215 GUI_SetFont(&GUI_Font8x16); 00216 GUI_ClearRect(0, 40, 319, 59); 00217 GUI_DispStringHCenterAt("Show all comments of a GIF file", 160, 40); 00218 // 00219 // Show all comments 00220 // 00221 GUI_ClearRect(0, 60, 319, 239); // Clear the image area 00222 CommentCnt = 0; 00223 while (!GUI_GIF_GetComment(pFile, FileSize, (unsigned char *)acBuffer, sizeof(acBuffer), CommentCnt)) { 00224 char acNumber[12] = "Comment #0:"; 00225 acNumber[9] = '0' + CommentCnt; 00226 GUI_DispStringHCenterAt(acNumber, 160, 80); 00227 GUI_SetBkColor(GUI_BLACK); 00228 GUI_SetColor(GUI_WHITE); 00229 GUI_ClearRectEx(&Rect); 00230 GUI_DispStringInRectWrap(acBuffer, &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER, GUI_WRAPMODE_WORD); 00231 GUI_SetBkColor(GUI_WHITE); 00232 GUI_SetColor(GUI_BLACK); 00233 GUI_Delay(4000); // Wait a while 00234 CommentCnt++; 00235 } 00236 } 00237 00238 /******************************************************************* 00239 * 00240 * Public code 00241 * 00242 ******************************************************************** 00243 */ 00244 /******************************************************************* 00245 * 00246 * MainTask 00247 */ 00248 void MainTask(void) { 00249 GUI_Init(); 00250 // 00251 // Check if recommended memory for the sample is available 00252 // 00253 if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) { 00254 GUI_ErrorOut("Not enough memory available."); 00255 return; 00256 } 00257 GUI_SetBkColor(GUI_WHITE); 00258 GUI_Clear(); 00259 GUI_SetColor(GUI_BLACK); 00260 GUI_SetFont(&GUI_Font24_ASCII); 00261 GUI_DispStringHCenterAt("DrawGIF - Sample", 160, 5); 00262 while (1) { 00263 _ShowMovie ((char *)_acImage0, sizeof(_acImage0)); 00264 _ShowSubImages((char *)_acImage0, sizeof(_acImage0)); 00265 _ShowComments ((char *)_acImage0, sizeof(_acImage0)); 00266 } 00267 } 00268 00269 /*************************** End of file ****************************/ 00270
Generated on Thu Jul 14 2022 12:58:38 by
