
рдЬрдм рдореБрдЭреЗ рдПрдХ рдПрдХрд▓ рдкреНрд░рд╕рд╛рд░рдг рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдСрдбрд┐рдпреЛ рд╕рдВрдЧреНрд░рд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдПрдХ рдСрдбрд┐рдпреЛ рдкреНрд▓реЗрдпрд░ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдкреНрд░рд╕рд╛рд░рдг 40 рдорд┐рдирдЯ рдФрд░ рджреЛ рд╕рдВрдЧреАрддрдордп рд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рдВрдмреЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд╡реЗрд╡рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдХрдИ рд╕рдВрдЧреАрдд рд╕реЗрд╡рд╛рдУрдВ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рд╕рд╛рдЗрдЯ рдХреЗ рдирд┐рдпреЛрдЬрд┐рдд рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рд╕рд╛рде рдФрд░, рд╕рдВрднрд╡рддрдГ, рднрд╡рд┐рд╖реНрдп рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдпрд╣рд╛рдВ рд░реЗрдЦрд╛рдкреБрдВрдЬ рддрд░рдВрдЧ рдХреЗрд╡рд▓ рдХреАрд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдиреБрдХреВрд▓реА рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд░рд╛рд╕реНрдЯрд░ рдореЗрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рд╣реИред
рдкреНрд░рд╕рд┐рджреНрдз SOUNDCLOUD рдиреЗ рд╕реНрдерд┐рд░ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкреВрд░реЗ рддрд░рдВрдЧ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЫреЛрдЯреЗ рд╕реНрдХреНрд░реАрди рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред
рд░реЗрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рддреБрд░рдВрдд ffmpeg рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЕрдзрд┐рдХ рд╕рдВрдХреБрдЪрд┐рдд рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдИрдВред рдЕрдкрдиреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдФрд░ рдПрдХ рддрд░рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдореВрд░реНрдЦрддрд╛ рд╣реЛрдЧреАред
рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:
1. рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ рдореЗрдВ рддрд░рдВрдЧ рдХреА рдЙрддреНрдкрддреНрддрд┐
2. рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж (JSON)
3. рдЗрд╕ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛
4. рдЕрдиреБрдХреВрд▓рди рдХреНрд╖рдорддрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: рд╕рд░рдгреА рдХреА рд╕рдорд╛рди рдХрдореА рдФрд░ рдЪрд░рдг 3 рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ
рддрд░рдВрдЧ рдирд┐рд░реНрдорд╛рдг
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдордп, рдмреАрдмреАрд╕реА рдХреЗ рд╕рд╛рдерд┐рдпреЛрдВ рдиреЗ рдЕрднреА рддрдХ JSON
рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ
рдХреЛ рдЙрдирдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдпрд╛рдж рд╣реИред рдФрд░ рдлрд┐рд▓рд╣рд╛рд▓, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рдмреЗрдХрд╛рд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдмрд┐рдЯрдиреЗрд╕ рдФрд░ рдЕрдиреНрдп рдмрдХрд╡рд╛рд╕ рдХреЗ рдЪреИрдирд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреБрд░рд╛рдирд╛ рд╣реИред
рдЗрд╕ рдмреАрдЪ, рдЬрд╛рд░реА рд░рдЦреЗрдВ:
рдпрджрд┐ рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдореЗрд░рд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓реЗрддреЗ рд╣реИрдВ (рдпрд╣ рдпрд╣рд╛рдБ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдШрдЯрд╛ рд╣реИ), рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкреНрд░рддрд┐ рдкрдЯреНрдЯреА 2 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИрдВ (рдкреНрд▓рд╕ 1 рдкрд┐рдХреНрд╕реЗрд▓ рд╡рд┐рднрд╛рдЬрдХ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 600px рд╣рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ 1200px рджреЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдХрд┐ рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдХреА рдПрдХ рдмрдбрд╝реА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдк 4K рдореЙрдирд┐рдЯрд░ рдХреА рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рдкрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ 600x60px рдкрд░ рд░реБрдХрддрд╛ рд╣реВрдВред
рдФрд░ рдЕрдм рдХреЛрдб рдХреЗ рдХрд░реАрдм:
shell_exec("ffmpeg -y -i '$name.mp3' -filter_complex 'aformat=channel_layouts=mono,compand,showwavespic=s=600x120,crop=in_w:in_h/2:0:0' -c:v png -pix_fmt monob -frames:v 1 '$png_path.png' > /dev/null 2>/dev/null &");
-filter_complex - рдлрд┐рд▓реНрдЯрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
aformat - рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
channel_layouts-рдордиреЛ - рдореЛрдиреЛ рдореЛрдб
-рдХрдореНрдкреИрдВрдб рдПрдХ рдХрдВрдкреНрд░реЗрд╕рд░ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рдХ рд╣реИред рдЗрд╕ рдореЛрдб рдореЗрдВ, рд╢рд╛рдВрдд рдФрд░ рдЬрд╝реЛрд░ рд╕реЗ рдЖрд╡рд╛рдЬрд╝ рджреЛрдиреЛрдВ рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдмрд░рд╛рдмрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рд╢рд╛рдВрдд рдФрд░ рдЬрд╝реЛрд░рджрд╛рд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рджреЛрдиреЛрдВ рдкрд░ рдЪреЛрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрдзрд┐рднрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рддрд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддрд░рдВрдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдерд╛, рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХрддрдо рддрдХ рдлреИрд▓рд╛ рд╣реЛрддрд╛ рд╣реИред
-showwavespic = s = 600x120 - s рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рд▓реЗрддрд╛ рд╣реИред
-рдкреНрд░реЙрдк = in_w: in_h / 2: 0: 0 - рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐ рдХреЛ рдХреНрд░реЙрдк рдХрд░реЗрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЫрд┐рдбрд╝рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рд╣рд┐рдорд╢реИрд▓ рдХреЗ рдЯрд┐рдк рдХреЛ рдЫреЛрдбрд╝рдХрд░ред
-c: v png -pix_fmt monob -frames: v 1 - рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк, bw рд░рдВрдЧ рдкреИрд▓реЗрдЯ рдФрд░ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдлреНрд░реЗрдо (рд╣рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред png8 рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛрд╖рд░рд╣рд┐рдд) / рд╕реНрдерд╛рдиред
> / рджреЗрд╡ / рдЕрд╢рдХреНрдд 2> / рджреЗрд╡ / рдЕрд╢рдХреНрдд рдФрд░ рд░рд╕рд╛рддрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдХрд╛рдордХрд╛рдЬреА рдбреЗрдЯрд╛ рднреЗрдЬреЗрдВред рдФрд░ '&' php рдХреЛ рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрддрд╛, рдмрд▓реНрдХрд┐ рдЪрд╛рд▓реВ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ рдпрд╣ рдЪрд┐рддреНрд░ рдорд┐рд▓рддрд╛ рд╣реИ:

рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 2.4kb
рдордЬреЗрджрд╛рд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдлреЗрдж рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рд▓рд╛рд▓ рд░рдВрдЧ рдерд╛ред рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛редрд╡реЗрдХреНрдЯрд░ рдореЗрдВ рддрд░рдВрдЧ рдмрджрд▓реЗрдВ
рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ Y рдореЗрдВ рдЖрдпрд╛рдо рдФрд░ X рдореЗрдВ рд╕рдордп рд╣реИред рдпрд╣ рдПрдХ рдЖрдпрд╛рдореА JSON рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рд╣реИред рдЬрд╣рд╛рдВ рдорд╛рди рдЖрдпрд╛рдо рдЖрдпрд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╕рдордп рдХреЗрд╡рд▓ рдЙрдирдХрд╛ рдХреНрд░рдорд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред
рдореИрдВрдиреЗ рдордХреНрдЦреА рдкрд░ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рд╡рд╛рдИ рдХреЗ рд╕рд╛рде рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ
рджреВрд╕рд░реЗ рддрдХ рдорд╛рдкрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЧрд▓реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
$a = imagecreatefrompng("test.png"); $i = 0; $h = '60';
рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдореЗрдВ 600 рдорд╛рди рд╣реИрдВред
[46,28,34,35,34,35,26,33,39,29,29,30,30,30,33,33,28...]
JSON рджреНрд╡рд╛рд░рд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд▓реЗрдпрд░
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдмрд╛рд░ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд▓рд┐рдпрдЯ рдмреЗрдВрдЯрд▓реЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░реЗрд╕рд░.рдЬреЗрдПрд╕ рд▓рд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдСрдбрд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдерд╛ред
github.com/ejb/progressor.js 2.76 KB
рдЖрдЗрдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдореЗрдВ рджреЛ рдкрд░рддреЗрдВ рд╣реЛрддреА рд╣реИрдВ: рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░реЗ рдмрд╛рд░ рдФрд░ рд╣рд░реЗ рд╣реЛрддреЗ рд╣реИрдВред
рдиреАрдЪреЗ рдЪрд┐рддреНрд░ getGraph рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╕реНрддрдВрдн рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рдореЛрдЯрд╛рдИ рдФрд░ рд░рдВрдЧ рдХреЗ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред
var c = document.createElement("canvas"); c.width = width; c.height = height; var ctx = c.getContext("2d"); function getGraph(fillStyle1,fillStyle2,fillStyle3) { if (fillStyle3) {
рдпрд╣рд╛рдВ рдЕрдиреБрдХреВрд▓рди рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ4. рдЕрдиреБрдХреВрд▓рдирд╢реАрд▓рддрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЕрдм рд╣рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ JSON рд╕рд░рдгреА рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдореЗрдВ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрдХреВрд▓рди рдХреНрд╖рдорддрд╛ рд╣реИред
рдПрдХ рдпреЛрдЬрдирд╛ рд╣реИ
рдорди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рд╣рд░ рджреВрд╕рд░реЗ, рддреАрд╕рд░реЗ, рдЪреМрдереЗ ... рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рд░рдгреА рдХреЛ рдЖрдзреЗ рд╕реЗ рдХрдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рд╕рдЯреАрдХрддрд╛ рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╕рд░рдгреА рдорд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рддрд░рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдПрдХ рдореГрдд рдЕрдВрдд рд╣реИред рдЬрдм рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рддрд░рдВрдЧ рдХрд┐рддрдирд╛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рдлрдЯреА рд╣реБрдИ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЪрд░рдо рдлреЗрдВрдХрддреЗ рд╣реИрдВ рдФрд░ рдКрдВрдЪрд╛рдИ рдореЗрдВ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдФрд╕рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Js рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:
largestTriangleThreeBucketsрдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ рдРрд╕рд╛ рдПрдХ рд╕рд░рдгреА, рдЬрд┐рд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдкрд░ рдЗрд╕реЗ XY рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдордЬреЗрджрд╛рд░ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рдмрд╛рдд рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

рдФрд░
рдпрд╣рд╛рдВ рдЖрдк KDPV рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдХреВрд▓реА рдХреЗ рд╕рд╛рде рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕ рджреГрд╢реНрдп рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рджрд╛рдИрдВ рдУрд░ html рдлреНрд░реЗрдо рд╣реЛрдЧрд╛ред рддрдм рдЖрдк рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреА рдЪреМрдбрд╝рд╛рдИ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд▓рд╛рди рдмреА - рдкрдл
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЕрднреА рднреА рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ 1000 рдбреЙрдЯреНрд╕ -5000 рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░реАрди рдХреА рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИред рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдЕрдВрдХ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╛рдд рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧреА? рдПрдХ рддрд░рдл, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрддрдирд╛ рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдбреЗрдореЛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ 5000 рдЕрдВрдХ рдЪрдмрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл, рдЬрд┐рддрдирд╛ рдорд╛рдВрдЧрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрддрдирд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдкреНрд░рд╢реНрдиред
рдкреНрд░рд╛рдердорд┐рдХ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Node.Js рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ php рд╣реИ, рддреЛ рдЖрдк php рдореЗрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди ... рдХреНрдпреЛрдВ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ред
рд░реЗрдЬрд╝рд╛рдорд╛рдкрд▓рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╣рд╛рдБ рд╣реИрдВ? рдЙрд╕реА рдореВрд▓ рд▓реАрдмреА рдЬреАрдбреА рдореЗрдВ рдЬреЛ рд╣рдо JSON рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рдереЗред рд╣рдо рдмрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ JSON рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рддрд░рдВрдЧ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реВрдВрдЧрд╛ред
$h = 60; $width_new = 600; $a = imagecreatefrompng("$id.png"); $width_old = imagesx($a); $aa = imagecreatetruecolor($width_new, $h); imagecopyresized($aa, $a, 0, 0, 0, 0, $width_new, $h, $width_old, $h); imagetruecolortopalette($aa, false, 2); $i = 0;
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЪреМрдбрд╝рд╛рдИ, рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рдФрд░ рдмрд╣реБрдд рд╕реНрдорд╛рд░реНрдЯ рджрд┐рдЦрддрд╛ рд╣реИред
рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИредрдИрд╕реНрдЯрд░ рдЕрдВрдбрд╛ред
рд╢рд╛рдпрдж рдзреВрдк рд╡рд╛рд▓рд╛ рджрд┐рди рдерд╛ред рд╣рдорд╛рд░реЗ рдХрдорд░реЗ рдХреА рдЦрд┐рдбрд╝рдХреА рдиреЗ рджреЛ рдкреБрд░рд╛рдиреА рдИрдВрдЯ 9 рдордВрдЬрд┐рд▓реЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХреА, рдЬреЛ рдореБрдЭреЗ рдПрдХ рдХрд┐рд╢реЛрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛рдж рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкреАрдЫреЗ рдПрдХ рдЯреНрд░рд╛рдо рдХреА рдЕрдВрдЧреВрдареА рдЦреБрд▓рддреА рд╣реИ, рдереЛрдбрд╝рд╛ рдЖрдЧреЗ - рдкреБрд░рд╛рдирд╛ рдЕрд╕реНрдкрддрд╛рд▓, рдпрд╣ рд╕реНрдХреВрд▓ рдХреЗ рдареАрдХ рдкреАрдЫреЗ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рднрд╡рди рдЬрд╣рд╛рдВ рдЦреБрджрд╛рдИ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдЙрдирдХреЗ рд╕рдВрд╕реНрдорд░рдгреЛрдВ рдореЗрдВ, рдпрд╣ рдПрдХ рдкреВрд░реНрд╡ рдЕрдзреВрд░рд╛ рдЕрд╕реНрдкрддрд╛рд▓ рд╣реИ, рдЬреЛ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреА рдЗрдорд╛рд░рдд рд╣реИред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдореЗрд░реЗ рдмрдЪрдкрди рдХреЗ рд╡рд┐рд╢реЗрд╖ рдмрд▓реЛрдВ рдиреЗ рдпрд╣рд╛рдВ рдХреИрд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЙрдиреНрд╣реЗрдВ рдЯреАрд╡реА рдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдЦреНрддреА рд╕реЗ рдПрдХ рдареЛрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рддреВрдлрд╛рдиреА рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЙрдЧ рдЖрдпрд╛ред рдФрд░ рдЕрдм, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдореИрдВ рдКрд░реНрдЬрд╛рд╡рд╛рди рд░реВрдк рд╕реЗ рдЪрдордХрджрд╛рд░ рд░реЗрд▓рд┐рдВрдЧ рдХреЛ рд╣рд┐рд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рд╕реАрдврд╝рд┐рдпреЛрдВ рд╕реЗ рдиреАрдЪреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдирд┐рдХрдЯрддрдо рдЖрд╡рд╛рд╕реАрдп рдкрд░рд┐рд╕рд░ рдХреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдореЗрдВ рдЗрд╕ рдЗрдорд╛рд░рдд рдХреЗ рд╡рд┐рд░реВрдкрдг рдХреЗ рд░реВрдк рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред (рдкрд╛рд╕ рдореЗрдВ, рдЯреНрд░рд╛рдо рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде, рдкреБрд░рд╛рдиреА рдмрдбрд╝реА рдХрдмреНрд░рд┐рд╕реНрддрд╛рди рдХреА рджреАрд╡рд╛рд░ рдЦреБрд▓рддреА рд╣реИред рдФрд░ рдЙрд╕ рдкрд░ рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдПрдХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рд╣реИ "рдЬрдмрдХрд┐ рдмреЛрд░рд┐рд╕ рд╕рддреНрддрд╛ рдореЗрдВ рд╣реИ" рдФрд░ "рд▓реЗрдмрд░ рд░реВрд╕ред" рднрдЧрд╡рд╛рди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреМрди рдФрд░ рдХрдм рдмрдиреЗ рдереЗ, рд▓реЗрдХрд┐рди рдХреБрдЫ рджрд╢рдХреЛрдВ рдХреЗ рдмрд╛рдж рднреА рд╡реЗ рдЕрднреА рднреА рдкрдврд╝рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреГрд╢реНрдп рд░рд╣рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ 90 рдХреЗ рджрд╢рдХ рдХреА рд╡рд┐рд░рд╛рд╕рдд рд╕реЗ рдЕрдм рддрдХ рд╢рд╣рд░ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдЪреАрди рд╕реНрдорд╛рд░рдХ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред)
рд╣рдорд╛рд░реЗ рдКрдкрд░реА рддрд▓ рдкрд░ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдЦрд╛рд▓реА рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдиреАрдЪреЗ рдФрд░ рддрдВрдЧ рд╕рдм рдХреБрдЫ рд╣реИ: рд╡рд┐рд╢реЗрд╖ рднреВ-рдмреБрджреНрдзрд┐, 2 рдЬреА рдСрдлрд┐рд╕ рд╕реЗ рдХреБрдЫ рдмрджрдорд╛рд╢, рдлрд┐рд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрд╢реЛрдирд┐рдХреА, рдФрд░ рдКрдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдЕрдирд╛рдЬ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдордВрдЬрд┐рд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рдЕрдВрдХреБрд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдБ рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди 5 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдЦрд┐рдбрд╝рдХреА рд╡реЙрд╢рд░ рдЯреНрд░рд╛рдиреНрд╕реЗрдВрдбреИрдВрдЯрд▓ рд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛, рдФрд░ рдЖрд╕рдиреНрди рдПрдХрд╛рдЙрдВрдЯреЗрдВрдЯ рд╕реЗ рдкрд╛рдЧрд▓ рдЖрдБрдЦреЛрдВ рд╕реЗ рдЬреЛ рдХрд┐рд╕реА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдлрд░реНрд╢ рдкрд░ рд╕рднреА рджрд░рд╡рд╛рдЬреЗ рдЦрдЯрдЦрдЯрд╛рддреЗ рд╣реИрдВ , рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдкрдбреЗрдЯ рдХреЗ рдХрд╛рд░рдг рдЗрдВрдЯрд░рдиреЗрдЯ рдмреИрдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреБрдЧрддрд╛рди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдПрдЧрд╛ред