ag游戏庄闲|官方网站
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
?用户名
?密??码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sy1368364703
今日帖子: 12
在线用户: 20
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil ?
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2019/8/24 17:29:08
标题:
请问这句C#代码啥意思啊?如何翻译成Delphi? 浏览:379
加入我的收藏
楼主: Bitmap?bmp;
if?(bmp.GetPixel(i,?j).ToArgb()?{
//
}
if?(bmp.GetPixel(i,?j).ToArgb()?{
//
}
请问为啥bmp.GetPixel(i,?j).ToArgb()会有负数呢?
我翻译成:?BMP.Canvas.Pixels[I,J];得到的都是正数,对不对啊?
----------------------------------------------
-
作者:
男 homejun (homejun) ★☆☆☆☆ -
盒子活跃会员
2019/8/25 9:11:07
1楼: ToArgb你没看到吗?
----------------------------------------------
-delphi新资讯站?http://www.delphigear.cn
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2019/8/25 18:47:29
2楼: 1楼看清我的问题了吗?为啥bmp.GetPixel(i,?j).ToArgb()会有负数呢?
----------------------------------------------
-
作者:
男 crystalmoon (黑夜杀手) ★☆☆☆☆ -
盒子活跃会员
2019/8/25 22:08:13
3楼: Vcl.Graphics.ColorToRGB?就是少了Alpha,那是个Int32。。。所以可能有负数。。
如果你用?fmx,那就可以带alpha了
----------------------------------------------
-
作者:
男 tiez (骑牛夜旅) ★☆☆☆☆ -
普通会员
2019/8/26 9:45:44
4楼: 一个像素ARGB或RGB都存四个字节,ARGB第一个字节是alpha,只要有表现成整型不就是负的吗?
----------------------------------------------
-
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2019/8/26 23:20:15
5楼: 啥颜色生成负数呢?谁有取色是负数的图片发一下
----------------------------------------------
-
作者:
男 codecoolie (CodeCoolie) ▲▲▲▲△ -
注册会员
2019/8/27 0:00:45
6楼: 最高位是1的数值,用有符号变量类型表示的话,就是负数

如果是RGB,只占用3个字节,高8位均为0,就没有负数

如果是ARGB,占用4个字节,高8位表示A通道的话,A取值大于等于128时,即为负数

也就是当一个Cardinal大于等于$80000000时候,如用用Integer表示的话,即为负数

$00000000为0
$00000001为1
...
$7FFFFFFE为+2147483646
$7FFFFFFF为+2147483647?(MaxInt/High(Integer))
$80000000为-?2147483648(Low(Integer))
$80000001为-?2147483647?
$80000002为-?2147483646
...
$FFFFFFFE为-2
$FFFFFFFF为-1

符号位,原码,反码,补码,了解一下
----------------------------------------------
FFmpeg?for?Delphi?http://www.CCAVC.com?http://www.DelphiFFmpeg.com
作者:
男 codecoolie (CodeCoolie) ▲▲▲▲△ -
注册会员
2019/8/27 0:10:31
7楼: 带Alpha通道的颜色,不是普通的颜色

你用调色板取到的颜色是不带Alpha的

然而,这只是用32位(4个字节)来表示RGB

一个正常的数值类型变量长度要么是8位的,要么是16位的,要么是32位的,要么是64位的。。。

如果有个畸形数值类型变量长度是24位的,且为有符号类型,那RGB就会有负值

不过好像没有哪个编译器要搞个24位的数值类型吧
----------------------------------------------
FFmpeg?for?Delphi?http://www.CCAVC.com?http://www.DelphiFFmpeg.com
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2019/8/27 8:32:43
8楼: delphi里的这种结构体能明白么??能明白就能明白你的问题
type
TMessage?=?packed?record
Msg:?Cardinal;
case?Integer?of
0:?(?WParam:?Longint;
?????LParam:?Longint;
?????Result:?Longint);
1:?(?WParamLo:?Word;
?????WParamHi:?Word;
?????LParamLo:?Word;
?????LParamHi:?Word;
?????ResultLo:?Word;
?????ResultHi:?Word);
end;
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2019/8/27 9:32:27
9楼: Graphics单元里有以下定义,可以看出,系统颜色用整数表示就是负值。
Type
??TColor?=?-$7FFFFFFF-1..$7FFFFFFF;
const
??clSystemColor?=?$FF000000;
??clScrollBar?=?TColor(clSystemColor?or?COLOR_SCROLLBAR);
??...
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河)?博客挂了……
信息
登陆以后才能回复
Copyright ? 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行15.625毫秒 RSS