timagelist

___ answer27136416 ___

Upscaling kleine Symbole ist nie eine gute Idee. Das Symbol 16X16 ist zu klein, um es anderweitig zu verwenden.

Zu Beginn können Sie mit

größere Shell-Bilder erhalten %Vor%

Diese Bilder werden im Allgemeinen 32x32 Pixel groß sein, aber um auf der sicheren Seite zu sein (wenn Windows im Hoch-DPI-Modus läuft), können Sie die korrekte Größe vom System

erhalten %Vor%

Sie können auch noch größere Shell-Images mit %code% Ссылка

Um ein Icon von Ihrer ImageList abzurufen (falls ImageList Icons enthält, und in Ihrem Fall tut es das) können Sie verwenden:

%Vor%

Für die Skalierung von Symbolen unter Beibehaltung der Transparenz für benutzerdefinierte Dimensionen können Sie folgenden Code verwenden:

%Vor%     
___ tag123delphi ___ Delphi ist eine Sprache für die schnelle Entwicklung von nativen Windows-, macOS-, Linux-, iOS- und Android-Anwendungen mithilfe von Object Pascal. Der Name bezieht sich sowohl auf die Delphi-Sprache als auch auf deren Bibliotheken, Compiler und IDE, mit denen Delphi-Projekte bearbeitet und debuggt werden können. ___ tag123scale ___ Das Skalen-Tag wird hauptsächlich für Fragen verwendet, die sich auf die proportionale Größenanpassung von Bildern oder UI-Elementen beziehen. ___ qstnhdr ___ Wie zeichne ich eine skalierte Version von Bildern aus dem System ImageList? ___ tag123bildliste ___ timagelist ist eine VCL-Komponente, die eine indizierte Sammlung von Bildern einheitlicher Größe darstellt. Es ist in der Controls.pas-Einheit definiert. ___ answer27135676 ___

%code% unterstützt das Zeichnen eines skalierten Bildes nicht, es zeichnet das Bild wie es ist. Die einzige Option ist, dass Sie die X / Y-Koordinaten angeben können, an denen das Bild auf dem Ziel-Canvas gezeichnet werden soll.

Um ein Bild zu skalieren, müssen Sie das gewünschte Bild zunächst in ein temporäres %code% extrahieren und die Methode %code% aufrufen, mit der Sie das gewünschte Rechteck auf dem Ziel-Canvas festlegen können. Die Bitmap wird dann ihre Zeichnung dehnen / skalieren, um das Rechteck nach Bedarf zu füllen.

    
___ qstntxt ___

Ich erstelle und initialisiere %code% ...

%Vor%

Ich erhalte das System-ImageList-Handle für kleine Icons (16x16) ...

%Vor%

Und jetzt möchte ich die Symbole auf meinem Kontrollbereich auf 50x50 Pixel skalieren. Wie mache ich das?

    
___ answer27135964 ___

Da ein extrahiertes Icon nicht mit StretchDraw gestreckt werden kann und ein extrahiertes Bitmap die Transparenz verlieren würde, könnte es eine Möglichkeit sein, die Icons zu extrahieren und den Ziel-Canvas mit SetWorldTransform :

%Vor%

Ein Beispiel mit 250 als gewünschte Größe:

    
___
3
Antworten

Wie zeichne ich eine skalierte Version von Bildern aus dem System ImageList?

Ich erstelle und initialisiere TImageList ... %Vor% Ich erhalte das System-ImageList-Handle für kleine Icons (16x16) ... %Vor% Und jetzt möchte ich die Symbole auf meinem Kontrollbereich auf 50x50 Pixel skalieren. Wie mache ich das?...
25.11.2014, 19:50