Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : Picomite 2 HDMI MODE 2 Playing with MAP
Author | Message | ||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
I had taken a little time today to play with the color palette in Mode 2. So I took a 16 color image from the Atari ST and "scanned" it under MMB4W and created a text file which assigns the pixel colors to a number (0-15) and saved the colors in in MMB4W BGR Format. Unfortunately, the colors could not be easily converted to a map. I have not yet fully understood the coding here. Therefore, in my small example, I still set the colors per map by hand. Maptest2.zip I think the result is nevertheless impressive Edited 2024-09-11 21:45 by Martin H. 'no comment |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
Showing 16 Color BMPs using MAP Command: 'The Power of 16 Colors 'PicoMiteHDMI only - MMBasic Version 6.00.00b8 or higher 'Reads and shows 4 Bit uncompressed BMP Files in up to 640x480 resolution ' and sets the Colors using the new MAP Command MODE 2 Map reset:Map set CLS Dim integer w,h,f,cl,c Do MODE 2 Read File$:If file$="end" Then Restore :Read file$ Open file$ For random As #1 read_BMP_Header Map set If h>240 Then MODE 3 hi=MM.VRes yofs=(hi-h)/2 yofs=hi-yofs Seek #1,of+1'54+65 For y=yofs To yofs-h-2 Step -1 For x=0 To w-1 Step 2 l$=Input$(1,1):cl=Asc(l$) Pixel x,y,Map(cl>>4):Pixel x+1,y,Map(cl And 15) Next Next Close #1 'display the used colors For c=0 To 15:cl=Map(c):Box c*20,0,20,10,,cl,cl:Next Pause 2000 Loop Data "chess.bmp","wasserfall2-4.bmp","waterfall.bmp","ST_Graph.bmp","outrun_a.b mp" Data "end" Sub read_BMP_Header Local l$ WStart= &H13 Hstart= &H17 MPStart= 55 'read offset of Picture data Seek #1,11 l$=Input$(1,1):of=Asc(l$) l$=Input$(1,1):Inc of,256*(Asc(l$)) 'read Picture width Seek #1,WStart l$=Input$(1,1):W=Asc(l$) l$=Input$(1,1):Inc w,256*(Asc(l$)) 'read Picture height Seek #1,HStart l$=Input$(1,1):h=Asc(l$) l$=Input$(1,1):Inc h,256*(Asc(l$)) 'convert the Color data to Map Seek #1,MPStart For F=0 To 15 l$=Input$(1,1):B=Asc(l$) l$=Input$(1,1):G=Asc(l$) l$=Input$(1,1):R=Asc(l$) l$=Input$(1,1)'fillbyte Map(f)=RGB(R,G,B) Next End Sub the Program and some Sample BMPs DecodeBmp.zip 'no comment |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Sixteen colors? Very nice. Edited 2024-09-23 23:35 by lizby PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
I also find it very impressive. Using the MAP command/function, we now have the option of setting the RGB values of the 16 colors individually 'no comment |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Those images in your zip file actually look much crisper and more subtle than the copies I made of them and posted. ~ Edited 2024-09-23 23:38 by lizby PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
They are dithered by my Paint Programm, find a nice Picture, resized to 320x200/240 or 640x480 and saved as 4 Bit BMP. so you can put together your own little slideshow. But, the big advantage is that you can work in Mode 2 as before, but you are no longer bound to the RGB(121) colors Edited 2024-09-24 00:14 by Martin H. 'no comment |
||||
Print this page |