;i92hddlZddlmZddlmZddlmZddlmZdZ dZ d Z d Z d Z dd d ZdS)N)QtGui) functions)getCupy)getNumbaFunctionsc2t||}|tkr'tx}|||}n||}|j|jkr<||}|d|jf|j }|S)N.) _convert_2dlut_to_1dlutnumpyr numba_takedtypeuint32ascontiguousarraynewaxisviewuint8)xpimagelutfn_numbas NC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/functions_qimage.py_apply_lut_for_uintr s ""c * *C U{{$5$7$77D##C//E  {bi$$U++c2:o&++BH55 Lc|4|jdks)|jdkr|jddvstd| |jdnd}||||j}|jdkr|dd|jf}|jddkr|S||dfd |j}||dddd f<|S) Nr)rzunsupported lut shaperr rr)ndimshape ValueErrorarangerrfull)rrNouts r_convert_lut_to_rgbar'"s 8q== HMM ! ))0111 ! SA {iii** x1}}!!!RZ-  y|q ''1a&#RX' . .CC1Q3K Jrc:|jdkr|S|jddkr=||||jdd|jg}|jddkr||j}|}|S)Nrrrrrr)r r! column_stackr$rrr ravel)rrs rr r Ds  x1}}  y|qoosBGGCIaL#RXG$N$NOPP y|qhhry!! ))++C Jrc |r|td||jd}|}nd}d}||dz }|p ||jk}|\} } | | z } | dkrdn| } | } || z } |tkrt x}|rwt ||}||| | |}d}|j|j kr<| |}|d|j f |j }nP||| | d|dz }n3tj|| | |d|dz f}|rt#|||}d}||fS)Nz'forceApplyLut True but lut not providedrro@r.r clip)r"r!min_scalar_typeuint16r rr rescale_and_lookupr r rrrrrescale_and_clipr rescaleDatar)rrlevelsr forceApplyLut num_colorsmax_scale_valuer apply_lutminValmaxValrngoffsetscalers r_rescale_and_lookup_floatr>Ws DBCCC Yq\ $    zA~ . .E3")!3INFF 6/Caxx!!SC F c !E U{{$5$7$77D  W)"c22C//ufcJJEC{bi'',,U33c2:o.33BH==--eUFAzTU~VVEE% 5&Q Q4G     'E377EC #:rc |j|jkr"| |jdkr|jddkrddg}||||fSd}|}d|jdzz}|)||j}|j|j} }n|\}} | |z } | dkrdn| } |} |d| z } |j|jkrA|jdkr6| |} tj | | | |j}||fS|tkr*tx}||| | dd }ntj || | |j}||fS|jd}|| z } ||dz }|j|jks ||jkrm| |} tj | | | |d|dz f }||}|j|jkr|jdkrt!|||}d}||fS|tkr-tx}||| | d|dz }ntj || | |d|dz f }||fS) Nrrrirr,rrr-)r r0r r!itemsizeiinfominmaxubyter#rr3r rr2r/r)rrr4r levels_lut colors_luteflsizeinfominlevmaxlevlevdiffr<r=indrr6lutdtypeeffluts r_combine_levels_and_lutrPs ry  N J!OO KNa  U ~#+czJJENQ&'G ~xx $$48voGa<>&= U{{,=,?,? ?L 11%:XY>ZZ!-5&:PQ>?R*$ $r)transparentLocationsc t}|r||nt}|jjdkr|dS|@||}|jdkrdS|jdkr|jddkrdS||j|jkrtd|jdko|jddkp|duo|jdko|jddk}|jjdkr|jdkrW|t||||d \}}d}nt||}d }t||||d \}}d}|Jd |d |<nt||||d \}}d}|Hd }| |jddd |j}d ||<| ||f}n,|j|j|jfvrt!||||\}}d}|j|jko|du}|o|du} |o|jdko|duo|jd dk} |j|jko|duo|du} | o)|jdkot#t$jjd} | o|jdko|jddk} | p| p| p| }|sdS||kr|}tj|}d}d}| r|jdkrt$jjj}na|jddkrt$jjj}n8|jddkr0|rt$jjj}n t$jjj}n| rt$jjj}|jdks|jddkr1d|D}n|jddkrd|D}na|jddkrd|D}n1| rt$jjj}n| rt$jjj}|tdtAj!||}||"||S)z Internal function to make an QImage from an ndarray without going through the full generality of makeARGB(). Only certain combinations of input arguments are supported. fNrrrzlut dtype must be uint8rF)r5Tr).rrrrFormat_Grayscale16c:g|]}tj|||SrqRgb).0xs r z#try_make_qimage..`s&FFFAEJq!Q''FFFrc*g|]}tj|SrVrW)rYrgbs rr[z#try_make_qimage..bs===EJ$===rc*g|]}tj|SrV)rqRgba)rYrgbas rr[z#try_make_qimage..ds@@@4EK&@@@rzunsupported image type)#rget_array_moduler r kindasarrayr r!rr"r>r'r$dstackrEr0rPhasattrrQImageFormatgetrFormat_Grayscale8 Format_RGB888Format_RGBA8888Format_RGBX8888Format_Indexed8r*tolistrT Format_RGBA64rndarray_to_qimage setColorTable)rr4rrQcpralpha_channel_requiredmask ubyte_nolvl is_passthru8 is_indexed8 is_passthru16can_grayscale16 is_rgba64 supportedfmtctblqimages rtry_make_qimagers B') 4  U # # #uB {36>t F## ;!  4 :??u{1~224 39002333 J!O $ A!# tO "A  " ! ! {3 :??#+6vs% s +2s33)-&6vs$ s{{{67f 2333E63eJE3F#/)-&wwu{2A228wDD-.)* 5$-00 29- - -,RDD s+) > I%*/Iek!n6IIK KK)I t Rxx   #E * *E C D0 :??,%7CC [^q ,%3CC [^q % :l)9l)9 0l!1 8q==CIaLA--FF1C1C1E1EFFFDD Yq\Q  == ===DD Yq\Q  @@3::<<@@@D 0l!4 0l!/ {1222  ( 4 4F T""" Mr)r Qtrrutil.cupy_helperrutil.numba_helperrrr'r r>rPrrVrrrs %%%%%%0000002D&444nM%M%M%`AETTTTTTTr