new Plugin
Modérateur : Modérateurs
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
new Plugin
Could this be a code for text layers? Only that not having a program to make the DLL and then in PFL who tries or tests it?
--------------------------------------------------------------------------
library LevelStyles;
uses
Windows, SysUtils;
const
// Nome del plugin
PluginName = 'Stili di Livello';
// Versione del plugin
PluginVersion = '1.0';
type
TIntegerArray = array of Integer;
// Struttura per gli effetti di livello
type
TLevelStyle = record
Shadow: Boolean;
Stroke: Boolean;
Glow: Boolean;
Gradient: Boolean;
Opacity: Integer;
end;
var
Effect: TLevelStyle;
// Funzione di inizializzazione del plugin
function GetPluginInfo: PChar; stdcall;
begin
Result := PluginName;
end;
// Funzione principale del plugin per applicare lo stile di livello
procedure ApplyLevelStyle(Bitmap: Pointer; Width, Height: Integer; var Style: TLevelStyle); stdcall;
var
x, y: Integer;
Pixel: PByte;
begin
// Controllo sugli effetti da applicare
if Style.Shadow then
// Esempio di codice per un'ombra (da implementare)
if Style.Stroke then
// Esempio di codice per un contorno (da implementare)
if Style.Glow then
// Esempio di codice per un alone (da implementare)
if Style.Gradient then
// Esempio di codice per un gradiente (da implementare)
// Applicazione del livello di opacità (trasparenza)
Pixel := Bitmap;
for y := 0 to Height - 1 do
begin
for x := 0 to Width - 1 do
begin
Pixel^ := (Pixel^ * Style.Opacity) div 255;
Inc(Pixel, 3); // Avanza al prossimo pixel (24-bit: R, G, B)
end;
end;
end;
// Funzione per salvare il file in formato PFI
procedure SaveToPFI(const FileName: PChar; Bitmap: Pointer; Width, Height: Integer); stdcall;
var
FileHandle: THandle;
BytesWritten: DWORD;
begin
FileHandle := CreateFile(FileName, GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
try
if FileHandle <> INVALID_HANDLE_VALUE then
begin
WriteFile(FileHandle, Bitmap^, Width * Height * 3, BytesWritten, nil);
end;
finally
CloseHandle(FileHandle);
end;
end;
exports
GetPluginInfo,
ApplyLevelStyle,
SaveToPFI;
begin
end.
--------------------------------------------------------------------------
library LevelStyles;
uses
Windows, SysUtils;
const
// Nome del plugin
PluginName = 'Stili di Livello';
// Versione del plugin
PluginVersion = '1.0';
type
TIntegerArray = array of Integer;
// Struttura per gli effetti di livello
type
TLevelStyle = record
Shadow: Boolean;
Stroke: Boolean;
Glow: Boolean;
Gradient: Boolean;
Opacity: Integer;
end;
var
Effect: TLevelStyle;
// Funzione di inizializzazione del plugin
function GetPluginInfo: PChar; stdcall;
begin
Result := PluginName;
end;
// Funzione principale del plugin per applicare lo stile di livello
procedure ApplyLevelStyle(Bitmap: Pointer; Width, Height: Integer; var Style: TLevelStyle); stdcall;
var
x, y: Integer;
Pixel: PByte;
begin
// Controllo sugli effetti da applicare
if Style.Shadow then
// Esempio di codice per un'ombra (da implementare)
if Style.Stroke then
// Esempio di codice per un contorno (da implementare)
if Style.Glow then
// Esempio di codice per un alone (da implementare)
if Style.Gradient then
// Esempio di codice per un gradiente (da implementare)
// Applicazione del livello di opacità (trasparenza)
Pixel := Bitmap;
for y := 0 to Height - 1 do
begin
for x := 0 to Width - 1 do
begin
Pixel^ := (Pixel^ * Style.Opacity) div 255;
Inc(Pixel, 3); // Avanza al prossimo pixel (24-bit: R, G, B)
end;
end;
end;
// Funzione per salvare il file in formato PFI
procedure SaveToPFI(const FileName: PChar; Bitmap: Pointer; Width, Height: Integer); stdcall;
var
FileHandle: THandle;
BytesWritten: DWORD;
begin
FileHandle := CreateFile(FileName, GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
try
if FileHandle <> INVALID_HANDLE_VALUE then
begin
WriteFile(FileHandle, Bitmap^, Width * Height * 3, BytesWritten, nil);
end;
finally
CloseHandle(FileHandle);
end;
end;
exports
GetPluginInfo,
ApplyLevelStyle,
SaveToPFI;
begin
end.
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
error: 0xc000012f
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12835
- Inscription : 28 oct. 2003 22:49
Re: new Plugin
ce code vient d'où ? c'est pas pour un plugin PhotoFiltre
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
Ah here! I tried, can you give me some tips?
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12835
- Inscription : 28 oct. 2003 22:49
Re: new Plugin
Il y a le kit de développement ici en bas de page mais on ne peut pas faire de plugin sur les calques texte, PhotoFiltre ne gère pas ça :
https://photofiltre-studio.com/plugins/plugins-en.htm
https://photofiltre-studio.com/plugins/plugins-en.htm
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
A little help on how to get started?
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
What if you make a small program to create plugins? with a base?
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12835
- Inscription : 28 oct. 2003 22:49
Re: new Plugin
Un programme qui fait un plugin pour un autre programme...qui va lui même faire un autre programme...
J'ai vu ça dans le film Terminator et ça c'est mal terminé (enfin pour les humais)
J'ai vu ça dans le film Terminator et ça c'est mal terminé (enfin pour les humais)
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
And I'd really like to have a plugin in photofiltre that creates layer styles
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12835
- Inscription : 28 oct. 2003 22:49
Re: new Plugin
Je comprend bien ce que vous voulez et sur le principe je suis un peu d'accord, plus d'effets de texte serait le bienvenu. Mais comme je vous l'ai déjà dit, ce n'est pas possible car le format PFI n’accepte pas de nouveau type de calque. Il faut forcément le modifier et ensuite il n'y aura plus de compatibilité avec les versions Studio X et 7 qui sont encore très utilisées, car le fichier ne s'ouvrira pas et génèrera des erreurs.
C'est pour ça que c'est mieux d'enregistrer les effets de texte dans un calque de type Bitmap qui lui est compatible avec toutes les versions.
Le nouveau plugin CircularText dans PF11 fonctionne comme ça, il génère un calque Bitmap et non Texte, comme ça on peu l'ouvrir avec Studio X et 7
C'est pour ça que c'est mieux d'enregistrer les effets de texte dans un calque de type Bitmap qui lui est compatible avec toutes les versions.
Le nouveau plugin CircularText dans PF11 fonctionne comme ça, il génère un calque Bitmap et non Texte, comme ça on peu l'ouvrir avec Studio X et 7
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
it's fine as you say, if we can do it it would be optimal
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
I don't understand if I have to do the Dll to see the plugin in photofiltre or not :
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12835
- Inscription : 28 oct. 2003 22:49
Re: new Plugin
Oui il faut une dll et il faut la renommer en pfl dans le dossier Plugins. Mais si vous n'êtes pas développeur je pense que c'est pratiquement impossible car il faut pas mal de bases
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 46
- Inscription : 27 déc. 2021 10:07
Re: new Plugin
Isn't there an easy way to create the DLL? or simply if I send you the plugin code and create the dll and see if it works? let me know thank you
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12835
- Inscription : 28 oct. 2003 22:49
Re: new Plugin
Non, il faut créer la dll et la tester avant vous même. Utilisez C++ ou Delphi pour le développement. Je ne fait rien, le plugin est 100% créé par son auteur.
Désolé d'insister mais ce n'est pas possible si vous n'êtes pas un développeur confirmé sinon tout le monde en ferait !
Désolé d'insister mais ce n'est pas possible si vous n'êtes pas un développeur confirmé sinon tout le monde en ferait !