作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 Delphi 2010 使用 GDIPlus 从 TImage 中鼠标光标下的像素获取 alpha 值?
我试过了,但 A 总是 255?我做错了什么?
procedure TFormMain.Image1MouseMove ( Sender: TObject; Shift: TShiftState; X, Y: Integer );
var
GPBitmap: TGPBitmap;
iColorRef: Cardinal;
iColor: TColor;
A, R, G, B: Byte;
iARGB: ARGB;
begin
if Assigned ( Image1.Picture ) then
begin
GPBitmap := TGPBitmap.Create ( Image1.Picture.Bitmap.Handle );
try
// Get alpha 0-255 from GPBitmap
GPBitmap.GetPixel ( X, Y, iColorRef );
iARGB := ColorRefToARGB ( iColorRef );
A := GetAlpha ( iARGB );
AlphaUnderCursor1.Caption := 'Alpha: ' + IntToStr ( A );
iColor := Image1.Canvas.Pixels [ X, Y ];
GetRGB ( iColor, R, G, B );
Shape1.Brush.Color := iColor;
finally
GPBitmap.Free;
end;
end;
最佳答案
问题是显示器上的图像没有透明度。
从根本上说,您在显示器上看到的每个像素都没有透明度。
即想象一下点击 Print Scrn,然后将您的桌面副本粘贴到 Paint 中。您不会找到任何部分透明的像素,因为没有。至少你会看到壁纸的像素。
很抱歉给您带来不便。
关于delphi - 从鼠标光标下的像素中获取 alphachannel 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129594/
如何使用 Delphi 2010 使用 GDIPlus 从 TImage 中鼠标光标下的像素获取 alpha 值? 我试过了,但 A 总是 255?我做错了什么? procedure TFormMai
我在我的 GUI 上重叠放置了两个相同尺寸的标签。首先,在背面有一个由标签的像素图设置的图像。第二个标签有另一个由 pixmap 设置的图像,该图像在某些像素中是透明的。在设计过程中,我可以通过正面图
如果我有两个带有图像和 alpha channel 的独立 JPG 文件,我该如何创建一个 PNG 文件? JPG 图像 + JPG 蒙版 --> 透明 PNG 我尝试过 WPF 解决方案: imag
我是一名优秀的程序员,十分优秀!