Subversion Repositories Kolibri OS

Rev

Rev 6175 | Rev 6210 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6175 Rev 6178
Line 821... Line 821...
821
			cmp ebx,1
821
			cmp ebx,1
822
			jl @f
822
			jl @f
823
			cmp ebx,buf2d_h
823
			cmp ebx,buf2d_h
824
			jge @f
824
			jge @f
825
				;ᦠ⨥ ¯® ¢ëá®â¥
825
				;ᦠ⨥ ¯® ¢ëá®â¥
826
				;... ¥é¥ ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ...
826
				stdcall img_rgb24_hresize, buf2d_data,eax,buf2d_h,ebx
827
			@@:
827
			@@:
828
		.24_end_r:
828
		.24_end_r:
829
		bt dword[options],0 ;¨§¬¥­. ¡ãä¥à
829
		bt dword[options],0 ;¨§¬¥­. ¡ãä¥à
830
		jnc .end_f
830
		jnc .end_f
831
		mov eax,dword[new_w]
831
		mov eax,dword[new_w]
Line 1828... Line 1828...
1828
	jnz .cycyle_0
1828
	jnz .cycyle_0
1829
popad
1829
popad
1830
	ret
1830
	ret
1831
endp
1831
endp
Line -... Line 1832...
-
 
1832
 
-
 
1833
;description:
-
 
1834
; ᦠ⨥ ¨§®¡à ¦¥­¨ï ¯® ¢ëá®â¥ (à §¬¥àë ¡ãä¥à  ­¥ ¬¥­ïîâáï)
-
 
1835
;input:
-
 
1836
; data_rgb - pointer to rgb data
-
 
1837
; size_w - width img in pixels
-
 
1838
; size_h - height img in pixels
-
 
1839
; size_h_new - new height img in pixels
-
 
1840
align 16
-
 
1841
proc img_rgb24_hresize, data_rgb:dword, size_w:dword, size_h:dword, size_h_new:dword
-
 
1842
locals
-
 
1843
	pr dd 0
-
 
1844
	pg dd 0
-
 
1845
	pb dd 0
-
 
1846
	img_n dd ? ;㪠§ â¥«ì ­  ¤ ­­ë¥ ­®¢®£® ¨§®¡à ¦¥­¨ï
-
 
1847
	cols dd ?
-
 
1848
	lin_b dd ? ;à §¬¥à «¨­¨¨ ¨§®¡à ¦¥­¨ï ¢ ¡ ©â å
-
 
1849
	data_n dd ? ;㪠§ â¥«ì ­  ¤ ­­ë¥ ¤«ï ­®¢®£® á⮫¡æ  ¯¨ªá¥«¥©
-
 
1850
endl
-
 
1851
pushad
-
 
1852
;eax - delta for inp. img
-
 
1853
;ebx - delta for outp. img
-
 
1854
;esi - pointer to data_rgb
-
 
1855
	mov esi,[data_rgb]
-
 
1856
	mov [data_n],esi
-
 
1857
	mov eax,[size_w]
-
 
1858
	mov [cols],eax
-
 
1859
	lea eax,[eax+eax*2]
-
 
1860
	mov [lin_b],eax
-
 
1861
align 4
-
 
1862
	.cycyle_0:
-
 
1863
	mov eax,[size_h_new]
-
 
1864
	mov ecx,[size_h]
-
 
1865
	mov ebx,ecx
-
 
1866
	mov esi,[data_n]
-
 
1867
	mov [img_n],esi
-
 
1868
	add dword[data_n],3 ;¯¥à¥å®¤ ­  á«¥¤ãî騩 á⮫¡¥æ ¯¨ªá¥«¥©
-
 
1869
align 4
-
 
1870
	.cycyle_1:
-
 
1871
		cmp eax,ebx
-
 
1872
		jg .else_0
-
 
1873
			;ª®¯¨àã¥¬ë© ¯¨ªá¥«ì ¬ ªá¨¬ «ì­® ¢«¨ï¥â ­  १ã«ìâ â
-
 
1874
			;­ ª ¯«¨¢ ¥¬ rgb ¤«ï ¨­â¥à¯®«ï樨 ¯¨ªá¥«¥©
-
 
1875
			mov edx,[size_h_new]
-
 
1876
			movzx edi,byte[esi]
-
 
1877
			imul edi,edx
-
 
1878
			add [pb],edi
-
 
1879
			movzx edi,byte[esi+1]
-
 
1880
			imul edi,edx
-
 
1881
			add [pg],edi
-
 
1882
			movzx edi,byte[esi+2]
-
 
1883
			imul edi,edx
-
 
1884
			add [pr],edi
-
 
1885
			cmp eax,ebx
-
 
1886
			je .d2_add
-
 
1887
			jmp .if_0_end
-
 
1888
		.else_0:
-
 
1889
			;ª®¯¨àã¥¬ë© ¯¨ªá¥«ì ¯®¯ ¤¥â ­  £à ­¨æã ¯¨ªá¥«¥©
-
 
1890
			mov edx,ebx
-
 
1891
			sub edx,eax
-
 
1892
			add edx,[size_h_new]
-
 
1893
			movzx edi,byte[esi]
-
 
1894
			imul edi,edx
-
 
1895
			add [pb],edi
-
 
1896
			movzx edi,byte[esi+1]
-
 
1897
			imul edi,edx
-
 
1898
			add [pg],edi
-
 
1899
			movzx edi,byte[esi+2]
-
 
1900
			imul edi,edx
-
 
1901
			add [pr],edi
-
 
1902
			;á®å࠭塞 £®â®¢®¥ rgb
-
 
1903
			.d2_add:
-
 
1904
			push eax
-
 
1905
				mov edi,[img_n]
-
 
1906
				mov eax,[pb]
-
 
1907
				xor edx,edx
-
 
1908
				div dword[size_h] ;eax /= [size_h]
-
 
1909
				stosb
-
 
1910
				mov eax,[pg]
-
 
1911
				xor edx,edx
-
 
1912
				div dword[size_h] ;eax /= [size_h]
-
 
1913
				stosb
-
 
1914
				mov eax,[pr]
-
 
1915
				xor edx,edx
-
 
1916
				div dword[size_h] ;eax /= [size_h]
-
 
1917
				stosb
-
 
1918
			pop eax
-
 
1919
			mov edx,[lin_b]
-
 
1920
			add dword[img_n],edx ;next pixel
-
 
1921
			;®¡­®¢«ï¥¬ rgb ¤«ï ­®¢®£® ¯¨ªá¥«ï
-
 
1922
			mov edx,eax
-
 
1923
			sub edx,ebx
-
 
1924
			movzx edi,byte[esi]
-
 
1925
			imul edi,edx
-
 
1926
			mov [pb],edi
-
 
1927
			movzx edi,byte[esi+1]
-
 
1928
			imul edi,edx
-
 
1929
			mov [pg],edi
-
 
1930
			movzx edi,byte[esi+2]
-
 
1931
			imul edi,edx
-
 
1932
			mov [pr],edi
-
 
1933
			add ebx,[size_h]
-
 
1934
		.if_0_end:
-
 
1935
		add eax,[size_h_new]
-
 
1936
		add esi,[lin_b] ;next pixel
-
 
1937
		dec ecx
-
 
1938
		jnz .cycyle_1
-
 
1939
	dec dword[cols]
-
 
1940
	jnz .cycyle_0
-
 
1941
popad
-
 
1942
	ret
-
 
1943
endp
1832
 
1944
 
1833
;¯à¥®¡à §®¢ ­¨¥ ¡ãä¥à  ¨§ 24-¡¨â­®£® ¢ 8-¡¨â­ë©
1945
;¯à¥®¡à §®¢ ­¨¥ ¡ãä¥à  ¨§ 24-¡¨â­®£® ¢ 8-¡¨â­ë©
1834
; spectr - ®¯à¥¤¥«ï¥â ª ª®© ᯥªâà ¡à âì ¯à¨ ¯à¥®¡à §®¢ ­¨¨ 0-ᨭ¨©, 1-§¥«¥­ë©, 2-ªà á­ë©
1946
; spectr - ®¯à¥¤¥«ï¥â ª ª®© ᯥªâà ¡à âì ¯à¨ ¯à¥®¡à §®¢ ­¨¨ 0-ᨭ¨©, 1-§¥«¥­ë©, 2-ªà á­ë©
1835
align 4
1947
align 4
1836
proc buf_conv_24_to_8, buf_struc:dword, spectr:dword
1948
proc buf_conv_24_to_8, buf_struc:dword, spectr:dword