OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3921|回复: 9

有啥软件可以取到480*800尺寸的BMP图片?image2lcd取不到这么大的!

[复制链接]

8

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-9-5
在线时间
10 小时
发表于 2016-9-16 22:52:54 | 显示全部楼层 |阅读模式
1金钱
有啥软件可以取到480*800尺寸的BMP图片?image2lcd取不到这么大的!

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2018-11-11
在线时间
50 小时
发表于 2016-9-16 22:52:55 | 显示全部楼层
就这个。

pconline1478247815471.zip

332.63 KB, 下载次数: 117

BMP转BIN

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-9-17 20:13:32 | 显示全部楼层
取这么大干嘛啊?单片机都存不下了哦。。。
回复

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2015-3-6
在线时间
18 小时
发表于 2016-9-18 09:08:06 | 显示全部楼层
自己编一个应该不难
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-9-18 09:23:05 | 显示全部楼层
用来干什么? 没有就自己写一个。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

8

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-9-5
在线时间
10 小时
 楼主| 发表于 2016-9-18 19:28:58 | 显示全部楼层
正点原子 发表于 2016-9-17 20:13
取这么大干嘛啊?单片机都存不下了哦。。。

我想在4.3'屏上全屏显示图片,取的BMP都是240*179的,显示怎么能放大到全屏呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-9-18 19:56:16 | 显示全部楼层
MTSXC 发表于 2016-9-18 19:28
我想在4.3'屏上全屏显示图片,取的BMP都是240*179的,显示怎么能放大到全屏呢?

你一定要的话,自己写一个软件吧。
不会上位机也没关系,用单片机照样可以写,解码bmp,得到RGB565数据后,读取LCD屏幕的颜色值,保存就行了。和你用上位机软件生成的是一样的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2018-11-11
在线时间
50 小时
发表于 2019-2-26 21:34:04 | 显示全部楼层
Image2TFT这个软件可以我测试了,我的VGA实验需要取1920x1080大小的图片。
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2024-6-5
在线时间
53 小时
发表于 2024-10-10 15:01:01 | 显示全部楼层
楼主解决了吗
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6661
金钱
6661
注册时间
2016-5-29
在线时间
909 小时
发表于 2024-11-4 16:40:40 | 显示全部楼层
#  BMP 单色文件 转数组 , python 代码.


#import tkinter as tk
import pyperclip
import os
# import shutil
from PIL import Image #, ImageDraw, ImageFont

#from tkinter.messagebox import showinfo

# def print_hex4(buf):
#     s = [ "0x" + hex(tt)[2:].zfill(4)  for tt in buf]
#     print ( ", ".join(s))
# def print_hex(buf):
#     s = [ "0x" + hex(tt)[2:].zfill(2)  for tt in buf]
#     print ( ", ".join(s))

# def dis_out(s):
#     root = tk.Tk()
#     root.geometry('1600x1000+0+0')
   
#     root.title('图片转C语言')
#     # def Take_input():
#     #     msg = text.get("1.7", "end")
#     #     showinfo(title='欢迎访问', message=msg)
        
#     text = tk.Text(root,width=132, height=44, font=("宋体", 16))
#     text.pack(padx=1, pady=1)
   
#     text.insert(tk.INSERT, s)
#     # Display = tk.Button(root, height = 2, width = 20, text ="读取", command = lambda:Take_input())
#     # Display.pack()
   
#     root.mainloop()
outbuf=[]


def work(fs):
    outbuf.clear()
    image = Image.open(fs)

    # 显示图片
    # image.show()
   
    # 获取图像的大小
    width, height = image.size
    # print("const uc pic [ ",width,"/8 * ",height ,']=')
   
    # 转换为RGB模式
    image = image.convert('RGB')


    # 获取像素RGB值
    pixels = image.load()
   
   

    def app2buf(n1,color):
            global outbuf
            color &= 0xff
            if  n1 & 0xff00:
                outbuf.append ((n1>>8)&0xff)
            n1 &= 0xff
            n1 <<= 8
            n1 |= color
            outbuf.append (n1)

    # 遍历所有像素点,8个像素 组成一个字节. 从上往下,逐行扫描,高位在前,结果保存在BF[]数组中.
    n = 0
    bf = [0] * (width//8*height)
    buf = 0
    for y in range(height):
        for x in range(width):
            r, g, b = pixels[x, y]
            buf <<=1
            if( (r+ g+ b ) != 0 ):
                buf |= 1
            n += 1
            if n & 7 == 0:
                bf[(n >> 3)-1] = buf & 0xff
    # print_hex(bf)
               
    # 压缩算法
    n=0
    lbf=bf[0]
    for i in bf:
        if lbf==i:  # 相同颜色的数量
            n += 1
        else:
            if n > 0 :
                app2buf(n,lbf) # 颜色 不同时,输出 数量颜色 到  outbuf 数组 .
            n = 1
            lbf = i
    if n > 0 :
        app2buf(n,lbf)
    outbuf.append (0) # 压缩 结束符

    # 转 C 语言
    df=""
    df += '\nconst us pic []= // ' + fs + "\n"
    df += '{\n'
    n = 0
    for i in outbuf:
        s =  "0x" + hex(i)[2:].zfill(4)
        df += s + ","
        n+=1
        if n >= 16:
            n = 0
            df += '\n'

    df += "// 压缩比 = " + "%.3f" %( outbuf.__len__()*2/ bf.__len__())  +"\n"
    df += '};\n'

    if (outbuf.__len__()*2/ bf.__len__() >  1.00 ): # 压缩比 大于1 就直接输出图片.
        df = ""
        df += '\nconst uc pic []= //'+ fs + "\n"
        df += '{\n'
        n = 0
        for i in bf:
            s =  "0x" + hex(i)[2:].zfill(2)
            df += s +','
            n += 1
            if n >= 16:
                n = 0
                df += '\n'
        df += '};\n'
    pyperclip.copy(df) # 复制到系统的剪切板
    print(df)
    # dis_out(df)

run_flag = True
while(run_flag == True):
    filename = input("请输入图片的文件路径:")
    filename = filename.replace('\"',"")
    filename = filename.replace("'","")
    filename = filename.lower()
    if filename == "exit":
        run_flag = False
    else:
        if (os.path.exists(filename) == False):
            print("输入的名称不存在,请重新输入")
        else:
            if len(filename) <= 4:
                print("输入错误,请重新输入")
            else:
                print(filename[-4:])
                if filename[-4:] != ".bmp" and filename[-4:] != ".jpg":
                    print("文件类型不是图片")
                else:     
                    work(filename)







   


        


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 05:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表