Полезные функции : Эльфостроение : Форум |
Страница 2 из 2: « 1 [2] |
MO_oC: |
07.09.10, 08:53 |
DuXeN0N, W660_R8BB001_ORANGE : atoi is 44215D85 |
diezil: |
25.04.11, 14:47 |
Код: #define TextID_CreateImageID( imageid ) ( imageid + 0x78000000 ) w800 r1db001, w810 r4ea031, w580 r8be001, k850 r1fa035 eg... Код: MessageBox( EMPTY_TEXTID, TextID_CreateImageID( 0xF35F ), NOIMAGE, 1, 5000, book ); enum ALIGN { LEFT=0, RIGHT, CENTER }; DrawString( TextID_CreateImageID( 0xE5D5 ), RIGHT, 1, 1, 240, 2, 0, 0, 0, 0 ); en: I think its the same for every phone, but just in case, it can be found here ru: Я думаю, его же для каждого телефона, но на всякий случай, он может быть найден здесь w800 r1db001 0x44EF3DEC w810 r4ea031 0x452FE2F8 w580 r8be001 0x4506A6C8 k850 r1fa035 0x1125FCB4 en: You can also merge with a TEXTID using ENC_TEXTID flag, used for drawing icons in ListMenu_SetItemSecondLineText etc... PS: I only tested DrawString(...) on DB2020, cannot guarantee it will work on other platforms using dll etc... ru: Вы также можете присоединиться к TEXTID использованием ENC_TEXTID флаг, используется для рисования иконок в ListMenu_SetItemSecondLineText итд... PS: Я только проверил DrawString (...) на DB2020, не может гарантировать, она будет работать на других платформах использованием DLL и т.д. .. //------- oh and Код: #define TextID_CreateInt24ID( num ) ( num + 0x70000000 ) [ Редактировано diezil в 25.4.11 12:01 ] |
den_po: |
26.04.11, 00:06 |
diezil пишет: Код: #define TextID_CreateImageID( imageid ) ( imageid + 0x78000000 ) svn\SE\SCalka\calc_object.c svn\SE\Tamagochi\gui.c svn\SE\Tamagochi\main.c svn\SE\Gono4ki\MyFUNC.c svn\SE\Tamagochi\status.c svn\SE\SCalka\calc_menu.cpp svn\SE\mcse\gui.cpp svn\SE\BcfgEdit\main.cpp svn\SE\SoftEdit\menu.cpp svn\SE\SoftEdit\menu_onLB.cpp svn\SE\BcfgEdit\visual.cpp |
diezil: |
29.12.12, 06:41 |
basic function for converting, resize and stretching images using "GC_PutChar()" and saving them back to file. attached images used in example code (in = 240*320 jpg - out 480*640 png ) code is for C902AS Код: typedef struct { int unk0; int unk1; int width; int height; void* pixel_data; int sizeof_pixel_data; } CANVAS_DESC; #define GET_BITDEPTH( __PCANVAS_DESC__ ) \ (((__PCANVAS_DESC__->sizeof_pixel_data)<<3) \ /(__PCANVAS_DESC__->width*__PCANVAS_DESC__->height)) void my_png_write_data(png_structp png_ptr, png_bytep data, png_size_t length) { int* io_ptr = (int*)png_get_io_ptr(png_ptr); w_fwrite( *io_ptr, data, length ); } void my_png_flush(png_structp png_ptr) { } int ImageID_SaveAsPNG( IMAGEID iid, wchar_t* fullpath, int new_width, int new_height ) { int width = new_width; if ( width == 0 ) width = GetImageWidth( iid ); int height = new_height; if ( height == 0 ) height = GetImageHeight( iid ); GC* pGC = GC_CreateMemoryGC( width, height, 32, 0, 0, 0 ); int* ptr = (int*)pGC->pcanvas; int* ptr1 = (int*)ptr[3]; int* ptr2 = (int*)ptr1[1]; CANVAS_DESC* canvas_desc = (CANVAS_DESC*)ptr2[5]; #ifdef _PRESERVE_ALPHA_ memset( (void*)canvas_desc->pixel_data, 0, canvas_desc->sizeof_pixel_data ); #else GC_DrawFRect( pGC, 0xFF000000, 0, 0, canvas_desc->width, canvas_desc->height ); #endif GC_PutChar( pGC, 0, 0, canvas_desc->width, canvas_desc->height, iid ); int my_file = w_fopen( fullpath, WA_Create, 0x1FF, 0 ); if ( my_file >= 0 ) { png_structp png_ptr; png_infop info_ptr; png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); info_ptr = png_create_info_struct(png_ptr); png_set_IHDR(png_ptr, info_ptr, canvas_desc->width, canvas_desc->height, 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); png_set_bgr(png_ptr); png_set_write_fn(png_ptr, &my_file, my_png_write_data, my_png_flush); png_write_info(png_ptr, info_ptr); int size = png_get_rowbytes(png_ptr,info_ptr); int i_ptr=0; for (int y=0; y<canvas_desc->height; y++) { png_byte* ptr = (png_byte*)i_ptr+(int)canvas_desc->pixel_data; png_write_row(png_ptr, ptr); i_ptr += size; } png_write_end(png_ptr, NULL); png_destroy_write_struct(&png_ptr, &info_ptr); w_fclose( my_file ); } GC_FreeGC( pGC ); return 0; } void func() { IMAGEID iid; ImageID_Get( L"/card/other", L"in_jpeg.jpg", &iid ); ImageID_SaveAsPNG( iid, L"card/other/out_png.png", GetImageWidth( iid )*2, GetImageHeight( iid )*2); ImageID_Free( iid ); } CANVAS_DESC* can also be found in structs "GVI_BMP and GVI_GC", it can be useful for alpha blending with GVI Код: typedef struct { int unk0; int unk1; int unk2; int unk3; int unk4; CANVAS_DESC* pcanvas_desc; } UNK_STRUCT; typedef struct { int unk0; UNK_STRUCT* unk1; int unk2; int unk3; int width; int height; char unk4[ 64 ]; } _GVI_GC; typedef struct { int unk0; int unk1; int unk2; void* unk3; void* unk4; CANVAS_DESC* pcanvas_desc; int unk6; int unk7; } _GVI_BMP; EDIT: Corrected memory leak in the above code [ Редактировано diezil в 29.12.12 18:11 ] Прикрепленный к сообщению файл: out_png.png (150.40 kb; 172 hits) Скачать файл in_jpeg.jpg (70.71 kb; 172 hits) Скачать файл |
Страница 2 из 2: « 1 [2] |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4672&start=10 © 2005-2018 supertrubka.org |