{
Исходный код генератора значков формата Windows Icon
из изображений формата PNG.
Copyright © 2021, 2026 Малик Разработчик
Это свободная программа: вы можете перераспространять её и/или изменять
её на условиях Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Стандартной
общественной лицензии GNU.
Вы должны были получить копию Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<http://www.gnu.org/licenses/>.
}
program mkico;
{$MODE DELPHI}
{%region} uses
graphics,
pascalx.lang,
platform.independent.osservices;
{%endregion}
{$R *.res}
function main(const arguments: UnicodeString_Array1d): int;
var
index: int;
length: int;
icon: TIcon;
image: TPortableNetworkGraphic;
begin
length := system.length(arguments);
if length < 3 then begin
writeln('Usage: mkico <destination icon file name> <png 1 file name> <png 2 file name> ... <png N file name>');
result := 1;
exit;
end;
icon := TIcon.create();
try
for index := 2 to length - 1 do begin
image := TPortableNetworkGraphic.create();
try
image.loadFromFile(arguments[index].toUTF8());
icon.add(TPixelFormat.pf32bit, image.height, image.width);
icon.current := index - 2;
icon.assignImage(image);
finally
image.free();
end;
end;
icon.saveToFile(arguments[1].toUTF8());
finally
icon.free();
end;
result := 0;
end;
begin
exitCode := main(Process.current().commandLine);
end.