-
نمایش عکس
سلام
من یک عکسی رو به .h تبدیل کردم با استفاده از نرم افزار مهندس صادقی بعدش با این دستور نمایش دادم
کد:
LCD_DrawPicture(1,1,119,134,pic);
فایل کتابخونشم اینه
کد:
void LCD_DrawPicture(uint16_t xsta ,
uint16_t ysta,
uint16_t width,
uint16_t high,
const uint8_t * pic)
{
uint32_t n;
uint16_t *bitmap = (uint16_t *)pic;
LCD_WindowMax (xsta, ysta, xsta+width-1, ysta+high-1);
LCD_WR_DATA_Prepare();
n=(uint32_t)width*high;
while(n--){wr_dat(*bitmap++);}
}
فایل هدری که تبدیل شده رو توی محل پروژه قرار دادم
مشکلی که هست اینه کمپایل نمیشه و میکه نمیشناسه !
به نظر شما مشکل از کجاس ؟!
میکرو 1768
ال سی دی 7 اینچ
-
اگه اسمش مثلا image باشه و تابع pic توش باشه اول برنامه نوشتید:
؟
-
مهندس تشکر
فقط یک سوال کوتاه داشتم
حقیقت میترسیم از مهدی سوال بپرسیم :mrgreen:
اون مشکل حل شد
مشکل جدید پیش اومد فکر کنم این نوع نوشتن اشتباه باشه
کد:
LCD_DrawPicture(1,1,119,134,*pic);
اروری که میده اینه
کد:
..\USER\MAIN\main.c(43): error: #167: argument of type "unsigned short" is incompatible with parameter of type "const uint8_t *"
فقط یک نکنه اقا یک عکس نشون بده :( کلی دعات میکنیم
نمایش عکس منو کشت :unh:
-
اقا مشکل حل شد ارور نمیده فقط اینکه عکسی که داره نمایش میده درستو حسابی نیست
اصلا پیکسل هاش قاطی پاتی شده
آقا ii998) یک مشکلی پیش اومده
من اصلا لیبلی تو این دستور نمیزارم نمیدونم چرا اینو نمایش میده
این دستور کلی که نوشتم
کد:
LCD_DrawPicture(1 , 1 , 119 , 134 , "");
عکسم که درهم برهمه !!
-
سلام
دو تا نکته: یکی اینکه آرایه ای که عکس رو تبدیل کردید باید از نوع 8 بیتی باشه چون توی تابع 8 بیتی تعریف شده و دوم اینکه تعداد پیکسل های طول و عرض رو باید دقیق وارد کنید.
-
سلام مهندس جان :hi:
شما از چه نرم افزاری برای تبدیل استفاده میکنید
برای من نمیتونی تعداد بیت مشخص کنی
-
ببین یک مشکل من هنوز رفع نشد
یعنی اینکه من چطور از این تابع استفاده کنم
کد:
void LCD_DrawPicture(uint16_t xsta ,
uint16_t ysta,
uint16_t width,
uint16_t high,
const uint8_t * pic)
سوالی که هست اینه من وقتی دستور به این صورت مینویسم ارور نمیده
کد:
LCD_DrawPicture(10 , 10 , 119 , 134 , "pic");
ولی مشکل اینجاست اگه pic پاک کنم و اینو "" بزارم بازم ارور نمیده !!! :unh:
مشکل بدتر اینه که اگه من هر اسمی بزارم توش که اصلا به لیبل ربطی نداشته باشه بازم ارور نمیده مثلا مثل این حالت
کد:
LCD_DrawPicture(10 , 10 , 119 , 134 , "asdfsafd");
:(
در کل گیج شدم !!!
نمیدونم چیکارش کنم و مشکل چییه
اندازه عکس مطمئنم
نوع تبدیل هم از نرم افزار مهندس محمدی استفاده کردم
-
از نرم افزار Image2Lcd استفاده کنید عکس که bmp 24 بیت ذخیره کنید با paint و در این نرم افزار با همان پیکسل عکس بکنید تبدیل به 16 بیتی و فرمت c.
-
شما باید یه آرایه به تابع ارسال کنی. مثلا عکس رو که تبدیل کردی یه آرایه داری به این شکل
Image[]={....}
بعد تابع رو اینطوری فراخونی می کنی:
LCD_DrawPicture(10,10,119,134,Image)
فقط باید دقت کنی که تعداد پیکسل ها رو دقیق وارد کنی.