DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tino0914
今日帖子: 18
在线用户: 22
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2017/4/18 16:23:29
标题:
移植了FreeType,显示是能显示了,但是遇到些问题,求指点(另:呼唤武稀松大侠) 浏览:1954
加入我的收藏
楼主: 把castle引擎中处理ttf的代码移植到了delphi上。效果如下图。
现在是能把字体取出来显示了,但是取出来的字都是倒的,截图看到的效果是我在最后把整图bitmap做了垂直镜像处理。
希望能不要做镜像处理,应该是在画每个字符的时候对字符的bitmap数据做处理,这个真的不懂,求指点。
此帖子包含附件:
PNG 图像
大小:18.1K
----------------------------------------------
虽千万人吾往矣!
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2017/4/18 16:26:47
1楼: 移植的代码和freetype.dll在附件。

新建一个工程,64位用64位的dll,32位用32位的dll。
此帖子包含附件:looper_2017418162645.rar 大小:529.3K
----------------------------------------------
虽千万人吾往矣!
作者:
男 lordaeron (Terry) ★☆☆☆☆ -
禁用账号
2017/4/18 17:10:47
2楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
该账号是个傻逼
作者:
男 bigboy2050 (bigboy2050) ★☆☆☆☆ -
普通会员
2017/4/18 17:13:35
3楼: 每个人都呼唤 武大侠,他要累倒咯。。。
----------------------------------------------
kittyapp
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2017/4/18 17:21:16
4楼: 移植freetype到delphi这个事情,目前delphi在这块是空白的,做这个事情我觉得还是比较有意义的。
武大侠绝对是这个方面的前辈,我是希望他能帮忙看看怎么完善一下。让这个代码以后可以开放出来给有需要的人安心使用。
----------------------------------------------
虽千万人吾往矣!
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2017/4/18 17:22:34
5楼: 前两天我只取一个字符的时候,发现好像是ft出来的bitmap数据就是倒的,但是不确定。
----------------------------------------------
虽千万人吾往矣!
作者:
男 bjlg (蓝天) ★☆☆☆☆ -
盒子活跃会员
2017/4/18 19:25:35
6楼:        把视图的坐标原点调整到与窗口坐标即图片文件坐标一致,都移到左下角。

Windows系统显示图像有视图和窗口两个概念,视图就是展现在显示器的区域,窗口就是源图像的位置,窗口一般是加载到windows系统的图片文件。视图一般是CRect定义的,坐标原点位于左上角。而窗口坐标即图片文件坐标在左下角,有些函数是从左下角开始读数据,所以当视图和窗口的坐标不变的时候,视图中的图像是颠倒的,原因就是图片文件的最下层显示在了视图的最上层。
----------------------------------------------
http://delphi.icm.edu.pl/ftp/http://delphi-z.ru
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2017/4/19 9:40:10
7楼: 感谢楼上各位的指点,字体倒置的问题已经基本解决。虽然效果还不好。
procedure TFreeTypeFont.InternalDrawChar(const pvCharBitmap: TCharBitmap;
  const pvImageX, pvImageY: Cardinal);
var
  k, RX, RY: Integer;
begin
  k:= 0;
  for RY := pvCharBitmap.H - 1 downto 0 do
  begin
    for RX := pvCharBitmap.W - 1 downto 0 do
      FCanvas.PutPixel(pvImageX + RX, pvImageY + pvCharBitmap.H - 1 - RY, InvertPixel2(pvCharBitmap.Data^[k + RX]));
    //
    Inc(k, pvCharBitmap.Pitch);
  end;
end;
----------------------------------------------
虽千万人吾往矣!
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2017/4/19 10:30:28
8楼: 动态字体的贴图管理
http://blog.codingnow.com/2013/04/dfont.html

看了一些文章,发现还是有不少问题需要解决。castle处理出来的效果倒是不错,可惜不想用这个引擎。下图是castle渲染出来的效果。
此帖子包含附件:
PNG 图像
大小:129.2K
----------------------------------------------
虽千万人吾往矣!
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2017/4/19 19:26:37
9楼: 看看AggPas吧,也有FreeType
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2020/8/5 19:22:20
10楼: 标记下回头翻译 过来试试 8楼算法
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行128.9063毫秒 RSS