
    h                        S SK Jr  S SKrS SKrS SKrS SKJr  S SKJ	r	J
r
  S	S jr    S
             SS jjr " S S\5      rg)    )annotationsN)Base)_image_decoder_dataexpectc                F   [         R                  " XS4[         R                  S9nX-  nX-  n[         R                  R	                  SSXTS4[         R                  S9n[        U5       H4  n[        U5       H"  nX-  n	Xr-  n
XgU4   nXXU-   2XU-   2S S 24'   M$     M6     U$ )N   dtyper      )sizer
   )npzerosuint8randomrandintrange)widthheightsquare_sizeimagenum_squares_xnum_squares_ycolorsijxycolors               c/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/image_decoder.pygenerate_checkerboardr       s    HHfQ'rxx8E (M)M YY	3mA6bhh  F
 =!}%AAA a4LE BG!+o%q{?':A=> & " L    c                *    SS K n[        R
                  R                  S5        [        X4U5      nUR                  R                  U5      n[        R                  " 5        n	UR                  XS9  U	R                  5       n
[        R                  " U
[        R                  S9nS S S 5        US:X  aV  UR                  R!                  [        R                  " W
5      5      n[        R"                  " U5      S S 2S S 2S S S24   nWU4$ US:X  aI  UR                  R!                  [        R                  " W
5      5      n[        R"                  " U5      nWU4$ US:X  ap  UR                  R!                  [        R                  " W
5      5      R%                  S	5      n[        R"                  " U5      S S 2S S 2[        R&                  4   nWU4$ [)        S
U 35      e! [         a    UR                  UR                  4s $ f = f! , (       d  f       GNf= f)Nr   i90  )formatr	   BGRRGB	GrayscaleLzUnsupported pixel format: )	PIL.ImageImportErrordataoutputr   r   seedr    Image	fromarrayioBytesIOsavegetvalue
frombufferr   openarrayconvertnewaxis
ValueError)format_frozen_datapixel_formatr   r   tile_szPILr   	image_pilfr+   
data_array
output_pilr,   s                 r   _generate_test_datarC   ,   s   4
 IINN5!&9E		##E*I	q)zz|]]4rxx8
 
 uYY^^BJJt$45
*%aDbDj1 v 
	YY^^BJJt$45
*% v 
	$YY^^BJJt$45==cB
*%aBJJ&67 v 5l^DEE+  4 !3!3334 
s   G !AH"H ?H 
Hc                      \ rS rSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       r\SS
 j5       rSrg)ImageDecoderO   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   inputsoutputsr<   jpeg"test_image_decoder_decode_jpeg_rgbrI   rJ   name)onnxhelper	make_noderC   r   image_decoder_decode_jpeg_rgbr   noder+   r,   s      r   $export_image_decoder_decode_jpeg_rgb1ImageDecoder.export_image_decoder_decode_jpeg_rgbP   a    {{$$8J	 % 
 +'EEu
 	6H5		
r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r'   rH   rK   (test_image_decoder_decode_jpeg_grayscalerM   )rO   rP   rQ   rC   r   #image_decoder_decode_jpeg_grayscaler   rS   s      r   *export_image_decoder_decode_jpeg_grayscale7ImageDecoder.export_image_decoder_decode_jpeg_grayscalec   sa    {{$$8J$	 % 
 +'KK[
 	6H;		
r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r$   rH   rK   "test_image_decoder_decode_jpeg_bgrrM   )rO   rP   rQ   rC   r   image_decoder_decode_jpeg_bgrr   rS   s      r   $export_image_decoder_decode_jpeg_bgr1ImageDecoder.export_image_decoder_decode_jpeg_bgrv   rW   r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   rH   jpeg2000$test_image_decoder_decode_jpeg2k_rgbrM   )rO   rP   rQ   rC   r   image_decoder_decode_jpeg2k_rgbr   rS   s      r   &export_image_decoder_decode_jpeg2k_rgb3ImageDecoder.export_image_decoder_decode_jpeg2k_rgb   sa    {{$$8J	 % 
 ++KKU
 	6H7		
r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   rH   bmp!test_image_decoder_decode_bmp_rgbrM   )rO   rP   rQ   rC   r   image_decoder_decode_bmp_rgbr   rS   s      r   #export_image_decoder_decode_bmp_rgb0ImageDecoder.export_image_decoder_decode_bmp_rgb   a    {{$$8J	 % 
 +&CCU
 	6H4		
r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   rH   png!test_image_decoder_decode_png_rgbrM   )rO   rP   rQ   rC   r   image_decoder_decode_png_rgbr   rS   s      r   #export_image_decoder_decode_png_rgb0ImageDecoder.export_image_decoder_decode_png_rgb   rn   r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   rH   tiff"test_image_decoder_decode_tiff_rgbrM   )rO   rP   rQ   rC   r   image_decoder_decode_tiff_rgbr   rS   s      r   $export_image_decoder_decode_tiff_rgb1ImageDecoder.export_image_decoder_decode_tiff_rgb   rW   r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   rH   webp"test_image_decoder_decode_webp_rgbrM   )rO   rP   rQ   rC   r   image_decoder_decode_webp_rgbr   rS   s      r   $export_image_decoder_decode_webp_rgb1ImageDecoder.export_image_decoder_decode_webp_rgb   rW   r!   c                     [         R                  R                  SS/S/SS9n [        S[        R
                  S5      u  p[        U U/U/SS9  g )	NrE   r+   r,   r&   rH   ppm!test_image_decoder_decode_pnm_rgbrM   )rO   rP   rQ   rC   r   image_decoder_decode_pnm_rgbr   rS   s      r   #export_image_decoder_decode_pnm_rgb0ImageDecoder.export_image_decoder_decode_pnm_rgb   rn   r!    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodrU   r[   r`   rf   rl   rs   ry   r   r   __static_attributes__r   r!   r   rE   rE   O   s    
 
$ 
 
$ 
 
$ 
 
$ 
 
$ 
 
$ 
 
$ 
 
$ 
 
r!   rE   )r   intr   r   r   r   r   z
np.ndarray)r&       r      )r:   strr;   z$_image_decoder_data.ImageDecoderDatar<   r   r   r   r   r   r=   r   r   ztuple[np.ndarray, np.ndarray])
__future__r   r0   numpyr   rO   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r    rC   rE   r   r!   r   <module>r      s    # 	   , C@   5    	 
     # Fj
4 j
r!   