PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اضافه کردن عکس از روی SDCard به Button_Widget , Iconview_Widget ؟



brasil
24-07-2016, 13:55
سلام
چطور میتونم عکس ذخیره شده در SDCard رو بعنوان آیکون برای Button , IconView استفاده کنم؟
البته با خواند از SDCard و نمایش روی LCD مشکلی ندارم
کد زیر رو هم برای Button امتحان کردم اما...!!!

BUTTON_SetBMP(hItem,BUTTON_BI_UNPRESSED,&file_wr_ptr);

file_wr_ptr یک متغییر از نوع فایله و در کد زیر مقدار میگیره

file_wr_ptr = fopen ("Alarm.bmp","r");

microprocesor_2002
24-07-2016, 16:27
سلام ...

این کاریه که من انجام دادم و خوب نتیجه گرفتم .....
مطمئن هستی که فایل رو درست خوندی ؟



res = f_open( &fsrc , "0:/temp/Home.bmp" , FA_READ | FA_OPEN_EXISTING ) ;
res = f_read(&fsrc, Home_Pic , fsrc.fsize ,&bbR ) ;
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6);
BUTTON_SetText(hItem, "");
BUTTON_SetBMP(hItem,0,Home_Pic);
res = f_close(&fsrc);

brasil
25-07-2016, 10:08
من کد زیر رو امتحان کردم جواب نداد؟؟؟



unsigned int NumBytesRead,NumBytes;
static char acBuffer[0x1000];



hItemB1 = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
Fptr1 = fopen ("Alarm.bmp","r");
NumBytesRead = fread(acBuffer,sizeof(char),NumBytes,Fptr1);
BUTTON_SetText(hItemB1, "mgh");
BUTTON_SetBMP(hItemB1,0,acBuffer);
fclose(Fptr1);

microprocesor_2002
26-07-2016, 12:24
سلام ...
acBuffer رو بصورت pointer تعریف کن ....
شاید با کمبود فضا مواجه میشه .... منظورم اینه که حجم عکسی که داری بیشتر از 4 کیلو بایتی هستش که به متغیر ختصاص دادی....

brasil
25-10-2016, 13:08
سلام
از SDcard میتونم در Image Widget تصویر رو نشون بدم کدی که نوشتم اینه:


static void _cbDialog(WM_MESSAGE * pMsg) {
const void * pData;
WM_HWIN hItem;
BUTTON_Handle hButton;
U32 FileSize;
unsigned int NumBytesRead,NumBytes;
FILE *Fptr=NULL;


switch (pMsg->MsgId) {
case WM_INIT_DIALOG:


hItem = pMsg->hWin;
WINDOW_SetBkColor(hItem, 0);


hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
Fptr = fopen ("LightOff.png","r");
NumBytesRead = fread(acBuffer,sizeof(char),NumBytes,Fptr);
IMAGE_SetPNG(hItem, acBuffer, NumBytesRead);
fclose(Fptr);
default:
WM_DefaultProc(pMsg);
break;
}
}


اما با اضافه کردن چند خط دیگه عکس رو در Image Widget نشون نمیده !!!


static void _cbDialog(WM_MESSAGE * pMsg) {
const void * pData;
WM_HWIN hItem;
BUTTON_Handle hButton;
U32 FileSize;
unsigned int NumBytesRead,NumBytes;
FILE *Fptr=NULL;
int NCode;
int Id;


switch (pMsg->MsgId) {
case WM_INIT_DIALOG:


hItem = pMsg->hWin;
WINDOW_SetBkColor(hItem, 0);


hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
Fptr = fopen ("LightOff.png","r");
NumBytesRead = fread(acBuffer,sizeof(char),NumBytes,Fptr);
IMAGE_SetPNG(hItem, acBuffer, NumBytesRead);
fclose(Fptr);
break;

case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_BUTTON_0:
switch(NCode) {
case WM_NOTIFICATION_CLICKED:

break;
case WM_NOTIFICATION_RELEASED:

break;
}
break;
}
break;

default:
WM_DefaultProc(pMsg);
break;
}
}