systeemvak + icoon grootte

This commit is contained in:
rogier committed 2026-11-09 22:42:35 +01:00
1 parent 465ec9837b
commit 136eda40ba
8 files changed
+88 -7

No files matched your search

+7
View File
@@ -2,6 +2,13 @@
Alle noemenswaardige wijzigingen in kniip staan in dit bestand. De nieuwste versie staat bovenaan.
## 1.1.7 - 2026-11-09
### Gewijzigd
- Het icoon in het systeemvak is groter en sluit aan bij de andere systeemvakpictogrammen.
- De tekst bij het icoon is nu **kniip**. Tijdens een opname staat daar **kniip - opname loopt**.
## 1.1.6 - 2026-11-09
### Nieuw
+2 -2
View File
@@ -34,7 +34,7 @@ kniip is een annotatie-editor die naast het Windows Knipprogramma werkt. Maak ee
| Versie | Installer |
| ------ | --------- |
| 1.1.6 | [Kniip-Setup-1.1.6.exe](https://git.hibbit.net/rogier/kniip/releases/download/1.1.6/Kniip-Setup-1.1.6.exe) |
| 1.1.7 | [Kniip-Setup-1.1.7.exe](https://git.hibbit.net/rogier/kniip/releases/download/1.1.7/Kniip-Setup-1.1.7.exe) |
Oudere versies vind je bij [alle releases](https://git.hibbit.net/rogier/kniip/releases).
@@ -80,7 +80,7 @@ Vereisten:
Bouwen:
```powershell
.\build.ps1 # versie 1.1.6
.\build.ps1 # versie 1.1.7
.\build.ps1 -Version 1.2.0 # andere versie
```
+1 -1
View File
@@ -12,7 +12,7 @@
# .\build.ps1 -SkipTest -> zonder testexe
param(
[string]$Version = "1.1.6",
[string]$Version = "1.1.7",
[string]$Runtime = "win-x64",
[switch]$SkipTest
)
+1 -1
View File
@@ -5,7 +5,7 @@
#define AppName "kniip"
#define AppExe "Kniip.exe"
#ifndef AppVersion
#define AppVersion "1.1.6"
#define AppVersion "1.1.7"
#endif
#ifndef PublishDir
#define PublishDir "..\artifacts\publish"
+3 -2
View File
@@ -225,7 +225,7 @@ internal sealed class TrayIcon : IDisposable
private static string IdleText => AppIdentity.IsTest
? $"{AppIdentity.DisplayName} {Kniip.Update.UpdateChecker.CurrentVersion}"
: "kniip - annotaties voor het Knipprogramma";
: AppIdentity.DisplayName;
private void BuildFolders()
{
@@ -316,7 +316,8 @@ internal sealed class TrayIcon : IDisposable
private static Icon LoadIcon()
{
var info = System.Windows.Application.GetResourceStream(new Uri("pack://application:,,,/AppIcon.ico"));
// Uitsnede van AppIcon.ico zonder snijlijnen (tools\make-tray-icon.ps1): op 16px vult het kader zo het vak.
var info = System.Windows.Application.GetResourceStream(new Uri("pack://application:,,,/TrayIcon.ico"));
if (info == null)
{
return SystemIcons.Application;
+2 -1
View File
@@ -18,7 +18,7 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
<Product>kniip</Product>
<Description>Annotatie-editor naast het Windows Knipprogramma</Description>
<Version>1.1.6</Version>
<Version>1.1.7</Version>
<SatelliteResourceLanguages>nl;en</SatelliteResourceLanguages>
<!-- WPF regelt DPI via app.manifest; de WinForms-analyzer is hier niet van toepassing. -->
<NoWarn>$(NoWarn);WFAC010</NoWarn>
@@ -34,6 +34,7 @@
<ItemGroup>
<Resource Include="AppIcon.ico" />
<Resource Include="TrayIcon.ico" />
<Resource Include="Assets\Emoji\emoji.json;Assets\Emoji\twemoji-64.png" />
</ItemGroup>
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

+72
View File
@@ -0,0 +1,72 @@
# Maakt src/Kniip/TrayIcon.ico uit de 256px-afbeelding in AppIcon.ico. Het systeemvak tekent op 16px;
# daar zijn de snijlijnen en de zwarte rand op een donkere taakbalk onzichtbaar en lijkt het icoon klein.
# Dit snijdt alleen het fotokader uit, zodat dat het hele vak vult. Opnieuw draaien als AppIcon.ico wijzigt.
$ErrorActionPreference = 'Stop'
Add-Type -AssemblyName System.Drawing
$root = Split-Path -Parent $PSScriptRoot
$source = Join-Path $root 'src\Kniip\AppIcon.ico'
$target = Join-Path $root 'src\Kniip\TrayIcon.ico'
# Kader in de 256px-afbeelding, inclusief de zwarte rand.
$crop = New-Object System.Drawing.Rectangle 42, 42, 172, 172
$sizes = 16, 20, 24, 32, 40, 48, 64
function Get-IcoPng([byte[]]$ico, [int]$size) {
$count = [BitConverter]::ToUInt16($ico, 4)
for ($i = 0; $i -lt $count; $i++) {
$entry = 6 + $i * 16
$width = if ($ico[$entry] -eq 0) { 256 } else { $ico[$entry] }
if ($width -eq $size) {
$length = [BitConverter]::ToUInt32($ico, $entry + 8)
$offset = [BitConverter]::ToUInt32($ico, $entry + 12)
$data = New-Object byte[] $length
[Array]::Copy($ico, $offset, $data, 0, $length)
return $data
}
}
throw "Geen ${size}px-afbeelding in $source"
}
$png = Get-IcoPng ([IO.File]::ReadAllBytes($source)) 256
$master = [System.Drawing.Bitmap]::FromStream((New-Object IO.MemoryStream (, $png)))
$images = foreach ($size in $sizes) {
$bitmap = New-Object System.Drawing.Bitmap $size, $size, ([System.Drawing.Imaging.PixelFormat]::Format32bppArgb)
$g = [System.Drawing.Graphics]::FromImage($bitmap)
$g.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
$g.PixelOffsetMode = [System.Drawing.Drawing2D.PixelOffsetMode]::HighQuality
$g.CompositingQuality = [System.Drawing.Drawing2D.CompositingQuality]::HighQuality
$g.DrawImage($master, (New-Object System.Drawing.Rectangle 0, 0, $size, $size), $crop, [System.Drawing.GraphicsUnit]::Pixel)
$g.Dispose()
$stream = New-Object IO.MemoryStream
$bitmap.Save($stream, [System.Drawing.Imaging.ImageFormat]::Png)
$bitmap.Dispose()
, $stream.ToArray()
}
$master.Dispose()
$out = New-Object IO.MemoryStream
$writer = New-Object IO.BinaryWriter $out
$writer.Write([UInt16]0)
$writer.Write([UInt16]1)
$writer.Write([UInt16]$sizes.Count)
$offset = 6 + 16 * $sizes.Count
for ($i = 0; $i -lt $sizes.Count; $i++) {
$writer.Write([byte]$sizes[$i])
$writer.Write([byte]$sizes[$i])
$writer.Write([byte]0)
$writer.Write([byte]0)
$writer.Write([UInt16]1)
$writer.Write([UInt16]32)
$writer.Write([UInt32]$images[$i].Length)
$writer.Write([UInt32]$offset)
$offset += $images[$i].Length
}
foreach ($image in $images) {
$writer.Write($image)
}
$writer.Flush()
[IO.File]::WriteAllBytes($target, $out.ToArray())
Write-Host "Geschreven: $target"