2G顯卡螢屏取色正常,4G顯卡螢屏取色不正確。從網上下載的取色軟體,在4G顯卡下取色也不正確,什么原因?
uj5u.com熱心網友回復:
這應該是硬體問題:1、4G顯卡安裝驅動程式,才能顯示正常。
2、安裝了驅動程式后,仍然不能顯示正常顏色,就是顯卡故障了。
3、好的顯卡驅動程式安裝后,有專用的設定軟體,可以調整色差。
uj5u.com熱心網友回復:
同一程式,在2G顯卡下取色正常,在4G顯卡下取色不正確,應該和顯卡有關。uj5u.com熱心網友回復:
取色軟體的取色演算法是什么?uj5u.com熱心網友回復:
GetCurSorPos(P); //獲取螢屏坐標fBmp := TBitMap.Create;
fBmp.Width := 1;
fBmp.Height := 1;
ScreenDC := CreateDC('DISPLAY',nil,nil,nil); //獲取整個螢屏
BitBlt(fBmp.Canvas.Handle, 0, 0, fBmp.Width, fBmp.Height, ScreenDC, P.X, P.Y, SRCCOPY);
FrmMain.LblR.Caption := inttostr(GetRValue(fBmp.Canvas.Pixels[0,0]));
FrmMain.LblG.Caption := inttostr(GetGValue(fBmp.Canvas.Pixels[0,0]));
FrmMain.LblB.Caption := inttostr(GetBValue(fBmp.Canvas.Pixels[0,0]));
DeleteDC(ScreenDC);
fBmp.Free;
這種演算法用C++也不行,只有把螢屏截屏,在截圖上取色才可以得到準確的顏色。
我設定了100分,怎么把這個分給你。
實在不行,只能換2G顯卡了。
uj5u.com熱心網友回復:
只用API就可以了:var
P: TPoint;
D: HDC;
C: TColor;
begin
GetCursorPos(P);
D := GetDC(0);
C := GetPixel(D, P.X, P.Y);
Caption := Format('%d %d %d', [byte(c), byte(C shr 8), byte(C shr 16)]);
ReleaseDC(0, D);
end;
uj5u.com熱心網友回復:
GetCursorPos(P);D := GetDC(0);
C := GetPixel(D, P.X, P.Y);
Caption := Format('%d %d %d', [byte(c), byte(C shr 8), byte(C shr 16)]);
ReleaseDC(0, D);
取色仍然不正確
uj5u.com熱心網友回復:
找出問題在哪了!顯示幕解析度的原因。
但為何解析度不同,會造成這種結果。原因不了解。
uj5u.com熱心網友回復:
應該和解析度無關,還是坐標處理的問題,關鍵在于你怎么判斷取色不正確的。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47736.html
