xiaonanko

xiaonanko

0个粉丝

33

问答

0

专栏

0

资料

xiaonanko  发布于  2016-06-28 20:12:08
采纳率 0%
33个问答
4635

大神帮帮忙~~~SDL SDL_ConvertSurface 转换失败

 
bmp 位图转换想转成ARGB1555 ,用 SDL_ConvertSurface 这个函数一直转换的位深是24~而ARGB的位深对应的是16位~
代码如下

SDL_PixelFormat *fmt; //pixel format information strcut
    fmt = (SDL_PixelFormat*)malloc(sizeof(SDL_PixelFormat));
    memset(fmt,0,sizeof(SDL_PixelFormat));
    fmt.BitsPerPixel = 16;
    fmt.BytesPerPixel = 2;
   
    fmt->Amask = 0x8000;
    fmt->Rmask = 0x7E00;          //ARGB1555
    fmt->Gmask = 0x03E0;
    fmt->Bmask = 0x001f;
   
    fmt->Ashift = 15;
    fmt->Rshift = 10;
    fmt->Gshift = 4;
    fmt->Bshift = 0;
    fmt->colorkey = 0xffffffff;
    fmt->alpha = 0xff;
    SDL_Surface *temp = SDL_ConvertSurface(text,fmt,SDL_SWSURFACE);

用的SDL库是老库1.2的库
我来回答
回答3个
时间排序
认可量排序

一只大犀牛

0个粉丝

3

问答

0

专栏

1

资料

一只大犀牛 2016-10-17 20:04:34
认可0
最后一个参数设置为0试试?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-10-18 08:17:27
认可0
"    fmt->Ashift = 15;
     fmt->Rshift = 10;
     fmt->Gshift = 4;
     fmt->Bshift = 0;  "
看上去A 1个bit, R 5个bits, G 6个bits, B 4个bits, 像是"ARGB1564"格式, 有点意思

smalljumper

0个粉丝

1

问答

0

专栏

0

资料

smalljumper 2017-05-25 23:53:58
认可0
请问最后怎么解决的?现在相同的代码SDL_ConvertSurface后,保存转换后的bmp图片,不是16位的,都是24位的
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区