Вверх ↑
Этот топик читают: Гость
Ответов: 721
Рейтинг: 154
#76: 2024-01-13 23:06:33 ЛС | профиль | цитата
prostov писал(а):
можно ли что то стороннее использовать, чтоб не быть привязанным Powershell

Конечно можно. Вот собрал пример на основе zbar.
https://github.com/mmalecki/zbar

Из-за размера dll-лок выкладываю архив на yandex диске.
https://disk.yandex.ru/d/lEtCVbPtLHyxbA
карма: 15

1
Голосовали:prostov
Ответов: 35
Рейтинг: 0
#77: 2024-01-14 14:26:19 ЛС | профиль | цитата
Gunta писал(а):

Конечно можно. Вот собрал пример на основе zbar.
https://github.com/mmalecki/zbar

Из-за размера dll-лок выкладываю архив на yandex диске.
https://disk.yandex.ru/d/lEtCVbPtLHyxbA

спасибо, у меня возник глупый вопрос, каким софтом по́льзуешься для компиляции исходников с github?
я только начал в это всё изучать.

Редактировалось 1 раз(а), последний 2024-01-14 14:26:37
карма: 0

0
Ответов: 8897
Рейтинг: 823
#78: 2024-01-14 16:28:10 ЛС | профиль | цитата
Gunta, вот программка для создания QR, библиотека всего ~100 кБ (Автор не отметился, а я к сожалению уже не помню кто )
https://forum.hiasm.com/getfile/39655
карма: 19

0
Ответов: 721
Рейтинг: 154
#79: 2024-01-14 17:18:12 ЛС | профиль | цитата
prostov писал(а):
у меня возник глупый вопрос, каким софтом по́льзуешься для компиляции исходников с github?
я только начал в это всё изучать.

На этот не такой уж и глупый вопрос не так легко ответить.
Всё зависит от того на каком языке написана программа.
А посоветовать изучать Visual Studio Code рука не поднимается.

--- Добавлено в 2024-01-14 17:22:58

Леонид писал(а):
вот программка для создания QR, библиотека всего ~100 кБ (Автор не отметился, а я к сожалению уже не помню кто

Автор этой схемы andrestudio.
Создавать QR-код немного легче чем читать и декодировать с видеокамеры.
Но тем не менее, я тоже добавлю немного в эту копилку.
https://forum.hiasm.com/getfile/39656
или
Add(MainForm,2953706,70,112)
{
link(onCreate,11334542:doString,[])
}
Add(FormatStr,11334542,133,126)
{
Mask="If(-not(Get-InstalledModule QRCodeGenerator -ErrorAction silentlycontinue))\r\n{\r\nInstall-Module QRCodeGenerator -Scope CurrentUser -Force\r\n}\r\n\r\n New-PSOneQRCodeText -Text '%1' -Width 200 -Show -OutPath "$home\Desktop\qr.png"\r\n"
link(onFString,3295982:doConsoleExec,[])
link(Str1,5347148:Text,[])
}
Add(WinExec,3295982,196,112)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleResult,3404984:doWork2,[])
link(onConsoleError,3404984:doWork3,[(249,139)])
link(onConsoleTerminate,10302060:doLoadFrom,[(263,146)(263,181)])
}
Add(Memo,5347148,133,77)
{
Top=80
Width=463
Height=354
Align=5
Strings=#40:Я не могу прослушать голосовое сообщение|
ScrollBars=3
}
Add(Charset,7312248,273,126)
{
link(onCharset,5347148:doAdd,[(312,132)(312,69)(123,69)(123,83)])
}
Add(HubEx,3404984,245,126)
{
link(onEvent,7312248:doCharset,[])
}
Add(Image,1728603,329,175)
{
Left=300
Top=195
Align=5
}
Add(Img_GDIFileProcessor,10302060,273,175)
{
FileName="qr.png"
link(onLoad,1728603:doLoad,[])
}


через Google (https://developers.google.com/chart/infographics/docs/qr_codes?hl=ru)
Add(MainForm,16582835,56,91)
{
Caption="Google QR-Encoder"
}
Add(Edit,9797136,112,91)
{
Left=140
Top=10
Width=240
Align=2
Text="Привет Hiasm!"
ClearAfterEnter=1
link(onEnter,8913171:doWork2,[])
}
Add(HTTP_Get,3284981,287,98)
{
link(onDownload,16365162:doEvent1,[])
}
Add(PNG,11521707,392,91)
{
FileName="QRcode.png"
Point(doLoadFromStream)
Point(doBitmap)
Point(Bitmap)
link(onBitmap,6965738:doLoad,[])
}
Add(Hub,16365162,343,105)
{
OutCount=3
link(onEvent1,11521707:doLoadFromStream,[])
link(onEvent2,11521707:doBitmap,[])
link(onEvent3,11521707:doSave,[(368,125)(368,104)])
}
Add(Image,6965738,455,91)
{
Left=10
Top=45
Width=370
Height=220
Align=5
AutoSize=0
}
Add(Charset,13887912,231,98)
{
Type=6
link(onCharset,3284981:doDownload,[])
}
Add(FormatStr,1876016,182,98)
{
Mask="https://chart.googleapis.com/chart?cht=qr&chs=512x512&choe=UTF-8&chl="%1""
Point(FString)
link(onFString,13887912:doCharset,[])
}
Add(Menu,5418054,49,147)
{
Menu=#16:Сгенерировать QR|
link(onSelectStr,7483447:doData,[])
}
Add(HubEx,8913171,154,98)
{
link(onEvent,1876016:doString,[])
}
Add(DoData,7483447,112,147)
{
link(onEventData,8913171:doWork3,[(158,153)])
link(Data,9797136:Text,[])
}


Редактировалось 7 раз(а), последний 2024-01-15 13:03:41
карма: 15

0
файлы: 1QrCodeGenerator.zip [105.5KB] [151]
Ответов: 721
Рейтинг: 154
#80: 2024-01-15 13:09:57 ЛС | профиль | цитата
Google API перестал выдавать QR code. Поэтому выкладываю схему при использовании https://goqr.me/api/doc/create-qr-code/


Add(MainForm,16582835,196,196)
{
Caption="api.qrserver.com QR-Encoder"
}
Add(Edit,9797136,252,196)
{
Left=140
Top=10
Width=240
Align=2
Text="Привет Hiasm!"
ClearAfterEnter=1
link(onEnter,8913171:doWork2,[])
}
Add(HTTP_Get,3284981,448,203)
{
link(onDownload,16365162:doEvent1,[])
}
Add(Hub,16365162,504,210)
{
link(onEvent1,12948547:doLoadFromStream,[])
link(onEvent2,12948547:doBitmap,[])
}
Add(Image,6965738,588,196)
{
Left=10
Top=45
Width=370
Height=220
Align=5
AutoSize=0
}
Add(Charset,13887912,399,203)
{
Type=6
link(onCharset,3284981:doDownload,[])
}
Add(FormatStr,1876016,322,203)
{
DataCount=7
Mask="http://api.qrserver.com/v1/create-qr-code/?data=%1&ecc=%2&size=%3&qzone=%4&color=%5&bgcolor=%6&format=%7"
Point(FString)
link(onFString,13887912:doCharset,[])
link(Str2,11474747:Text,[])
link(Str3,12212135:Text,[])
link(Str4,10325946:Value,[])
link(Str5,16238986:Text,[])
link(Str6,12704565:Text,[])
link(Str7,7214357:Text,[])
}
Add(Menu,5418054,196,273)
{
Menu=#16:Сгенерировать QR|
link(onSelectStr,12266315:doData,[])
}
Add(HubEx,8913171,294,203)
{
link(onEvent,1876016:doString,[])
}
Add(Jpeg,12948547,539,196)
{
Point(doLoadFromStream)
Point(doBitmap)
link(onBitmap,6965738:doLoad,[])
}
Add(VisualStrings,7214357,364,168)
{
Lines=#3:jpg|
}
Add(VisualStrings,12704565,357,140)
{
Lines=#6:ffffff|
}
Add(VisualStrings,16238986,350,112)
{
Lines=#6:000000|
}
Add(Memory,10325946,343,70)
{
Default=Integer(1)
}
Add(VisualStrings,11474747,329,21)
{
Lines=#1:M|
}
Add(VisualStrings,12212135,336,49)
{
Lines=#7:500x500|
Width=60
}
Add(DoData,12266315,252,273)
{
link(onEventData,8913171:doWork3,[(298,279)])
link(Data,9797136:Text,[])
}

карма: 15

0
Ответов: 8897
Рейтинг: 823
#81: 2024-01-15 17:39:18 ЛС | профиль | цитата
Gunta, правильно ориентировать квадрат сложно, но можно и средствами HiAsm, а уж перебрать "1" "0" и выкинуть опознавательные квадратики тем более можно
Остаётся выяснить кодировку
карма: 19

0
Ответов: 721
Рейтинг: 154
#82: 2024-06-29 14:31:30 ЛС | профиль | цитата
Круговая диаграмма (PieChart )
Вариант 1

Add(MainForm,2953706,70,119)
{
Width=549
Height=316
Point(onClose)
link(onCreate,4794102:doString,[])
link(onClose,10162556:doConsoleTerminate,[])
}
Add(FormatStr,4794102,126,133)
{
Mask="Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n[System.Windows.Forms.DataVisualization.Charting.Chart]::new()\r\n\r\nFunction Out-PieChart {\r\n [CmdletBinding()]\r\n param (\r\n [Parameter(ValueFromPipeline)]\r\n [psobject] $inputObject,\r\n [Parameter()]\r\n [string] $PieChartTitle,\r\n [Parameter()]\r\n [int] $ChartWidth = 800,\r\n [Parameter()]\r\n [int] $ChartHeight = 400,\r\n [Parameter()]\r\n [string[]] $NameProperty,\r\n [Parameter()]\r\n [string] $ValueProperty,\r\n [Parameter()]\r\n [switch] $Pie3D,\r\n [Parameter()]\r\n [switch] $DisplayToScreen,\r\n [Parameter()]\r\n [string] $saveImage\r\n )\r\n begin {\r\n Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n # Frame\r\n $Chart = [System.Windows.Forms.DataVisualization.Charting.Chart]@{\r\n Width = $ChartWidth\r\n Height = $ChartHeight\r\n BackColor = 'White'\r\n BorderColor = 'Black'\r\n }\r\n # Body\r\n $null = $Chart.Titles.Add($PieChartTitle)\r\n $Chart.Titles[0].Font = 'segoeuilight,20pt'\r\n $Chart.Titles[0].Alignment = 'TopCenter'\r\n # Create Chart Area\r\n $ChartArea = [System.Windows.Forms.DataVisualization.Charting.ChartArea]::new()\r\n $ChartArea.Area3DStyle.Enable3D = $Pie3D.ToBool()\r\n $ChartArea.Area3DStyle.Inclination = 50\r\n $Chart.ChartAreas.Add($ChartArea)\r\n # Define Chart Area\r\n $null = $Chart.Series.Add('Data')\r\n $Chart.Series['Data'].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Pie\r\n # Chart style\r\n $Chart.Series['Data']['PieLabelStyle'] = 'Outside'\r\n $Chart.Series['Data']['PieLineColor'] = 'Black'\r\n $Chart.Series['Data']['PieDrawingStyle'] = 'Concave'\r\n\r\n $chart.Series['Data'].IsValueShownAsLabel = $true\r\n $chart.series['Data'].Label = '#PERCENT\n#VALX'\r\n # Set ArrayList\r\n $XColumn = [System.Collections.ArrayList]::new()\r\n $yColumn = [System.Collections.ArrayList]::new()\r\n }\r\n process {\r\n if (-not $valueProperty) {\r\n $numericProperties = foreach ($property in $inputObject.PSObject.Properties) {\r\n if ([Double]::TryParse($property.Value, [Ref]$null)) {\r\n $property.Name\r\n }\r\n }\r\n if (@($numericProperties).Count -eq 1) {\r\n $valueProperty = $numericProperties\r\n }\r\n else {\r\n throw 'Unable to automatically determine properties to graph'\r\n }\r\n }\r\n if (-not $LabelProperty) {\r\n if ($inputObject.PSObject.Properties.Count -eq 2) {\r\n $LabelProperty = $inputObject.Properties.Name -ne $valueProperty\r\n }\r\n elseif ($inputObject.PSObject.Properties.Item('Name')) {\r\n $LabelProperty = 'Name'\r\n }\r\n else {\r\n throw 'Cannot convert Data'\r\n }\r\n }\r\n # Bind chart columns\r\n $null = $yColumn.Add($InputObject.$valueProperty)\r\n $null = $xColumn.Add($inputObject.$LabelProperty)\r\n }\r\n end {\r\n # Add data to chart\r\n $Chart.Series['Data'].Points.DataBindXY($xColumn, $yColumn)\r\n # Save file\r\n if ($psboundparameters.ContainsKey('saveImage')) {\r\n try{\r\n if (Test-Path (Split-Path $saveImage -Parent)) {\r\n $SaveImage = $pscmdlet.GetUnresolvedProviderPathFromPSPath($saveImage)\r\n $Chart.SaveImage($saveImage, 'png')\r\n } else {\r\n throw 'Invalid path, the parent directory must exist'\r\n }\r\n } catch {\r\n throw\r\n }\r\n }\r\n # Display Chart to screen\r\n if ($DisplayToScreen.ToBool()) {\r\n $Form = [Windows.Forms.Form]@{\r\n Width = 800\r\n Height = 450\r\n AutoSize = $true\r\n FormBorderStyle = 'FixedDialog'\r\n MaximizeBox = $false\r\n MinimizeBox = $false\r\n KeyPreview = $true\r\n }\r\n $Form.controls.add($Chart)\r\n $Chart.Anchor = 'Bottom, Right, Top, Left'\r\n $Form.Add_KeyDown({\r\n if ($_.KeyCode -eq 'Escape') { $Form.Close() }\r\n })\r\n $Form.Add_Shown( {$Form.Activate()})\r\n $form.Handle | Set-Clipboard\r\n $Form.ShowDialog() | Out-Null\r\n }\r\n }\r\n}\r\n\r\n@'\r\n%1\r\n'@ | ConvertFrom-Csv -Delimiter ';' |\r\n Out-PieChart -PieChartTitle '%2' -DisplayToScreen\r\n\r\n"
link(onFString,10162556:doConsoleExec,[])
link(Str1,3128668:Text,[])
link(Str2,13553777:Text,[(139,117)(174,117)])
}
Add(WinExec,10162556,182,119)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
Point(onConsoleTerminate)
link(onConsoleTerminate,4020321:doSetText,[])
}
Add(StrList,3128668,126,77)
{
Strings=#15:Name;Population|16:Индия;1428167000|16:Китай;1411750000|13:США;334233854|19:Индонезия;274900000|18:Пакистан;241499431|17:Нигерия;226826390|18:Бразилия;220165780|19:Бангладеш;169828911|16:Россия;146447400|17:Мексика;133649565|
}
Add(ClipboardHook,4020321,238,147)
{
link(onChange,11749786:doVisible,[])
}
Add(WinTools,11749786,294,147)
{
}
Add(VisualStrings,13553777,168,77)
{
Lines=#39:Топ 10 стран с самым большим населением|
Width=228
}

Вариант 2

Add(MainForm,7880538,140,168)
{
Width=549
Height=316
Point(onClose)
link(onCreate,4794102:doString,[])
link(onClose,10162556:doConsoleTerminate,[])
}
Add(FormatStr,4794102,196,182)
{
Mask="Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n[System.Windows.Forms.DataVisualization.Charting.Chart]::new()\r\n\r\nFunction Out-PieChart {\r\n [CmdletBinding()]\r\n param (\r\n [Parameter(ValueFromPipeline)]\r\n [psobject] $inputObject,\r\n [Parameter()]\r\n [string] $PieChartTitle,\r\n [Parameter()]\r\n [int] $ChartWidth = 800,\r\n [Parameter()]\r\n [int] $ChartHeight = 400,\r\n [Parameter()]\r\n [string[]] $NameProperty,\r\n [Parameter()]\r\n [string] $ValueProperty,\r\n [Parameter()]\r\n [switch] $Pie3D,\r\n [Parameter()]\r\n [switch] $DisplayToScreen,\r\n [Parameter()]\r\n [string] $saveImage\r\n )\r\n begin {\r\n Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n # Frame\r\n $Chart = [System.Windows.Forms.DataVisualization.Charting.Chart]@{\r\n Width = $ChartWidth\r\n Height = $ChartHeight\r\n BackColor = 'White'\r\n BorderColor = 'Black'\r\n }\r\n # Body\r\n $null = $Chart.Titles.Add($PieChartTitle)\r\n $Chart.Titles[0].Font = 'segoeuilight,20pt'\r\n $Chart.Titles[0].Alignment = 'TopCenter'\r\n # Create Chart Area\r\n $ChartArea = [System.Windows.Forms.DataVisualization.Charting.ChartArea]::new()\r\n $ChartArea.Area3DStyle.Enable3D = $Pie3D.ToBool()\r\n $ChartArea.Area3DStyle.Inclination = 50\r\n $Chart.ChartAreas.Add($ChartArea)\r\n # Define Chart Area\r\n $null = $Chart.Series.Add('Data')\r\n $Chart.Series['Data'].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Pie\r\n # Chart style\r\n $Chart.Series['Data']['PieLabelStyle'] = 'Outside'\r\n $Chart.Series['Data']['PieLineColor'] = 'Black'\r\n $Chart.Series['Data']['PieDrawingStyle'] = 'Concave'\r\n\r\n $chart.Series['Data'].IsValueShownAsLabel = $true\r\n $chart.series['Data'].Label = '#PERCENT\n#VALX'\r\n # Set ArrayList\r\n $XColumn = [System.Collections.ArrayList]::new()\r\n $yColumn = [System.Collections.ArrayList]::new()\r\n }\r\n process {\r\n if (-not $valueProperty) {\r\n $numericProperties = foreach ($property in $inputObject.PSObject.Properties) {\r\n if ([Double]::TryParse($property.Value, [Ref]$null)) {\r\n $property.Name\r\n }\r\n }\r\n if (@($numericProperties).Count -eq 1) {\r\n $valueProperty = $numericProperties\r\n }\r\n else {\r\n throw 'Unable to automatically determine properties to graph'\r\n }\r\n }\r\n if (-not $LabelProperty) {\r\n if ($inputObject.PSObject.Properties.Count -eq 2) {\r\n $LabelProperty = $inputObject.Properties.Name -ne $valueProperty\r\n }\r\n elseif ($inputObject.PSObject.Properties.Item('Name')) {\r\n $LabelProperty = 'Name'\r\n }\r\n else {\r\n throw 'Cannot convert Data'\r\n }\r\n }\r\n # Bind chart columns\r\n $null = $yColumn.Add($InputObject.$valueProperty)\r\n $null = $xColumn.Add($inputObject.$LabelProperty)\r\n }\r\n end {\r\n # Add data to chart\r\n $Chart.Series['Data'].Points.DataBindXY($xColumn, $yColumn)\r\n # Save file\r\n if ($psboundparameters.ContainsKey('saveImage')) {\r\n try{\r\n if (Test-Path (Split-Path $saveImage -Parent)) {\r\n $SaveImage = $pscmdlet.GetUnresolvedProviderPathFromPSPath($saveImage)\r\n $Chart.SaveImage($saveImage, 'png')\r\n } else {\r\n throw 'Invalid path, the parent directory must exist'\r\n }\r\n } catch {\r\n throw\r\n }\r\n }\r\n # Display Chart to screen\r\n if ($DisplayToScreen.ToBool()) {\r\n $Form = [Windows.Forms.Form]@{\r\n Width = 800\r\n Height = 450\r\n AutoSize = $true\r\n FormBorderStyle = 'FixedDialog'\r\n MaximizeBox = $false\r\n MinimizeBox = $false\r\n KeyPreview = $true\r\n }\r\n $Form.controls.add($Chart)\r\n $Chart.Anchor = 'Bottom, Right, Top, Left'\r\n $Form.Add_KeyDown({\r\n if ($_.KeyCode -eq 'Escape') { $Form.Close() }\r\n })\r\n $Form.Add_Shown( {$Form.Activate()})\r\n $form.Handle | Set-Clipboard\r\n $Form.ShowDialog() | Out-Null\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n@'\r\n%1\r\n'@ | ConvertFrom-Csv -Delimiter ';' |\r\n Out-PieChart -PieChartTitle '%2' -Pie3D -saveImage .\pie_chart.png\r\n\r\n\r\n"
link(onFString,10162556:doConsoleExec,[])
link(Str1,4364501:Text,[])
link(Str2,7146705:Text,[(209,159)(258,159)])
}
Add(WinExec,10162556,252,168)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
Point(onConsoleTerminate)
link(onConsoleTerminate,10612163:doEvent1,[])
}
Add(Image,13903628,392,196)
{
Width=533
Height=277
Align=5
}
Add(PNG,14777831,343,196)
{
FileName="pie_chart.png"
Point(doBitmap)
link(onBitmap,13903628:doLoad,[])
}
Add(Hub,10612163,301,196)
{
link(onEvent1,14777831:doLoad,[])
link(onEvent2,14777831:doBitmap,[(333,209)(333,216)])
}
Add(VisualStrings,7146705,252,126)
{
Lines=#39:Топ 10 стран с самым большим населением|
Width=228
}
Add(StrList,4364501,196,119)
{
Strings=#15:Name;Population|16:Индия;1428167000|16:Китай;1411750000|13:США;334233854|19:Индонезия;274900000|18:Пакистан;241499431|17:Нигерия;226826390|18:Бразилия;220165780|19:Бангладеш;169828911|16:Россия;146447400|17:Мексика;133649565|
}


Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2407
карма: 15

1
Голосовали:sla8a
82
Сообщение
...
Прикрепленные файлы
(файлы не залиты)