游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6366|回复: 14

请问一下背景图片文件过大的时候该如何正确载入??

[复制链接]

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2003-9-7 16:04:00 | 显示全部楼层 |阅读模式
现在有一幅地图图片,1200X1200大小,但载入的时候总是出错。
但在1024X768范围内就是正常的。
请指教。

BmpSurface:=nil;
hr := Display.CreateSurfaceFromBitmap(BmpSurface,'ground.bmp',1024,768);

语法是Delphi的,应该不妨碍理解的。

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 16:09:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

hr := Display.CreateSurfaceFromBitmap(BmpSurface,'ground.bmp',0,0);的时候就会报错

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2003-9-7 18:53:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

检查一下返回值

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 19:09:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

直接就报错了阿。。。。
你们是怎么解决这个问题的??

62

主题

331

帖子

366

积分

中级会员

Rank: 3Rank: 3

积分
366
QQ
发表于 2003-9-7 19:14:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

切成小块不就好了?

..

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 19:19:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

不会吧??
切小块???
真要命。。

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 19:21:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

  // Create a DirectDrawSurface for this bitmap
  FillChar( ddsd, SizeOf( ddsd ), 0 ); //ZeroMemory( @ddsd, SizeOf( ddsd ) );
  ddsd.dwSize := SizeOf( ddsd );

  ddsd.dwFlags := DDSD_CAPS or DDSD_HEIGHT or DDSD_WIDTH;
  ddsd.ddsCaps.dwCaps := DDSCAPS_OFFSCREENPLAIN;
  ddsd.dwWidth := bmp.bmWidth;
  ddsd.dwHeight := bmp.bmHeight;

  ppSurface := TSurface.Create;
  hr := ppSurface.CreateSurface( m_pDD, ddsd );
  if ( hr <> DD_OK ) then
  begin
    ppSurface.Free;
    result := hr;
    exit;
  end;



这里ddsd.dwWidth和ddsd.dwHeighy都是1200的时候,ppSurface.CreateSurface( m_pDD, ddsd )这里就会报错。
请问如何解决?

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 19:30:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

真是怪了,
最新测试结果:
ddsd.dwWidth>1024的时候会报错。
而ddsd.dwHeight可以无限大。。
郁闷。。

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 19:44:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

OK,解决。

13

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2003-9-7 19:46:00 | 显示全部楼层

Re:请问一下背景图片文件过大的时候该如何正确载入??

修改  ddsd.ddsCaps.dwCaps := DDSCAPS_OFFSCREENPLAIN ;
为  ddsd.ddsCaps.dwCaps := DDSCAPS_OFFSCREENPLAIN or DDSCAPS_SYSTEMMEMORY;即可,
原理未知。
望知情者告知。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-21 18:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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