FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Réduction d'images Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Réduction d'images Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Réduction d'images Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Réduction d'images Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Réduction d'images Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Réduction d'images Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Réduction d'images Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Réduction d'images Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Réduction d'images Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Réduction d'images Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Réduction d'images Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Réduction d'images Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Réduction d'images Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Réduction d'images Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Réduction d'images Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal

 

 Réduction d'images

Aller en bas 
4 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Réduction d'images Empty
MessageSujet: Réduction d'images   Réduction d'images EmptyLun 29 Avr 2013 - 16:36

J'ai fait une tentative de réduction d'image en Panoramic pur, mais hélas, ça ne marche pas.
Mon idée était de charger l'image dans un picture aux dimensions finales voulues, avec stretch_on, puis de récupérer cette image pixel par pixel (malgré que c'est un peu long):
Code:
DIM f$, w%, h%, x%, y%, r%, g%, b%, xa%, ya%

f$ = "C:\Graph\Jpg\Goldgate.jpg": ' image quelconque, de 640x480
WIDTH 0,600: HEIGHT 0,700: COLOR 0,0,255,255
PICTURE 1: TOP 1,10: LEFT 1,10: WIDTH 1,500: HEIGHT 1,350: ' picture résultat
PICTURE 9: TOP 9,400: LEFT 9,20: STRETCH_ON 9: ' picture de manoeuvre

w% = 320: h% = 240: ' dimensions de l'image réduite
xa% = 30: ya% = 20: ' emplacement de l'image finale
WIDTH 9, w%: HEIGHT 9, h%
FILE_LOAD 9, f$
2D_TARGET_IS 1
FOR y% = 0 TO h%-1
    FOR x% = 0 TO w%-1
        r% = COLOR_PIXEL_RED(9,x%,y%)
        g% = COLOR_PIXEL_GREEN(9,x%,y%)
        b% = COLOR_PIXEL_BLUE(9,x%,y%)
        2D_PEN_COLOR r%,g%,b%: 2D_POINT xa%+x%,ya%+y%
    NEXT x%
    DISPLAY
NEXT y%
END
... et on ne récupère que le coin supérieur gauche de l'image initiale, autrement dit, malgré le stretch_on, l'image est comprimée mais a gardé ses dimensions et tous ses pixels d'origine.
En d'autres termes, le picture qu'on voit à l'écran ne correspond pas à la réalité au point de vue pixels...

Si quelqu'un a une idée de génie pour faire ça en Panoramic ? je le fais avec un programme externe, mais c'est moins bien...

PS
Je poursuis mes investigations: on peut charger l'image d'origine dans un picture invisible, et la réduire en ne prenant qu'un pixel sur 2, ou 3, ou 4... ce n'est peut-être pas très rationnel mais le résultat est satisfaisant dans la plupart des cas (sauf quelques cas rares où on obtient des petits carrés, par une espèce de phénomène de résonance, sans doute, sachant que le rapport de réduction peut être folklorique mais que les pixels eux sont entiers):
Code:
LABEL Reduc
DIM f$, wi%, hi%, r, w%, h%, x%, y%, xa%, ya%

f$ = "C:\Graph\Jpg\Goldgate.jpg": ' image quelconque, de 640x480
wi% = 640: hi% = 480: ' dimensions de l'image d'origine
WIDTH 0,600: HEIGHT 0,500: COLOR 0,0,255,255
PICTURE 1: TOP 1,30: LEFT 1,10: WIDTH 1,570: HEIGHT 1,400: ' picture résultat
PICTURE 9: TOP 9,-2000: ' picture de manoeuvre
r = 1/2: ' réduction
xa% = 30: ya% = 20: ' emplacement de l'image finale dans le Picture 1
print time$
GOSUB Reduc
print time$
END
' ------------------------------------------------------------------------
Reduc:
w% = r*wi%: h% = r*hi%: ' dimensions de l'image réduite du facteur r
WIDTH 9, wi%: HEIGHT 9, hi%: FILE_LOAD 9, f$
2D_TARGET_IS 1
FOR y% = 0 TO hi%-1 step 1/r
    FOR x% = 0 TO wi%-1 step 1/r
        2D_PEN_COLOR COLOR_PIXEL_RED(9,x%,y%),COLOR_PIXEL_GREEN(9,x%,y%),COLOR_PIXEL_BLUE(9,x%,y%)
        2D_POINT xa%+x%*r,ya%+y%*r
    NEXT x%
    DISPLAY
NEXT y%
RETURN
Évidemment c'est un peu long (pixel par pixel...) mais c'est expérimental !
moins c'est réduit, plus c'est long (et lycée de Versailles), c'est logique.
A titre d'exemple (image jpg de 640x480, facteur de réduction r):
r = 3/4: 54 secondes
r = 2/3: 14 s avec apparition de trame carrée
r = 1/2: 14 s
r = 1/3: 7 s
r = 1/4: 4 s
r = 1/5: 3 s
r = 1/10: 1 s
Revenir en haut Aller en bas
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 8:20

jl35
il y a peut de temps j'avais posté mon projet
et il a peut être ce que tu cherche pour agrandir
ou rétrécir une image il se servir de strech_on
et ça marche

[url=https://panoramic.1fr1.net/t2946-coordonne-d-un-pixel]https://panoramic.1fr1.net/t2946-coordonne-d-un-pixel[/url]

Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 9:20

Bonjour pascal, et merci d'avoir regardé.

Ce que je cherche à faire, ce n'est pas simplement à agrandir ou réduire une image visuellement, à l'écran, ça c'est très facile à faire avec stretch_on, mais à obtenir une image entièrement nouvelle, enregistrée dans un fichier, avec ses nouvelles dimensions.

Je n'ai pas trop approfondi les exemples que tu donnes, mais il me semble que ce sont des opérations seulement visuelles ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 9:30

Tu peux aussi essayer la fonction
Code:

res% = dll_call2("ResizePicture",h%,w%)
de KGF.dll. Elle peut être utilisée directement, c'est-à-dire elle n'utilisa pas l'image interne. Elle agit en fait sur une image chargée dans le presse-papier. Tu pais clipboard_copy d'un picture (invisible peut-être), puis tu appelles cette fonction en lui donnant largeur et hauteur souhaitée, puis tu fais clipboard_paste dans un nouveau pictire définit sans stretch_on, avec les bonnes dimensions.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 9:53

Bonjour Klaus,
ça par contre ça m'intéresse, dans la mesure où je charge déjà KGF.dll pour l'impression, je n'avais même pas percuté sur la fonction 'resize', que veux-tu, il y en a tellement qu'il va me falloir un dictionnaire des fonctions, classées par genre !
Je vais regarder de plus près les fonctions graphiques.
Merci en tout cas pour le tuyau !
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 10:05

Tu devrais lister les raisons pour lesquelles tu fais encore appel à un programme externe, il ne doit plus manquer grand chose dans la DLL Wink
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 10:23

Eh bien... c'est ce que je vais finir par faire !
Et puis après souhaiter que KGF.dll soit intégré à Panoramic ! Very Happy
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 17:32

Je suis presque d'accord avec toi JL35. Je dis presque par ce que le fait que KGF soit un complément externe permet à Klaus de nous débloquer avec une rapidité fulgurante que Jack ne pourrait pas avoir (il devrait faire des tests d'interaction, de la documentation, etc et n'a pas beaucoup de temps.) Mais je suis d'accord sur le fait que par contre Jack pourrait se servir des fonctions ajoutées comme réservoir d'idées pour intégrer des fonctions et commandes dans Panoramic avec le nombre de paramètres etc... (Voir au besoin pour les sources puisque Klaus les mets à disposition).
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 17:48

Il est évident que sur simple demande, je fournis l'intégralité des sources à Jack. C'est assez gros - à ce jour, ça doit faire près de 15.000 lignes en Delphi.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 18:41

Je plaisantais à moitié quand même, en pensant que c'était un rêve difficilement réalisable.

Je regarde d'un peu plus près les très intéressantes fonctions graphiques de KGF.dll (je me suis sorti sur papier la vingtaine de pages de la doc correspondante, la totalité étant devenue assez énorme).

Je suis un peu perplexe sur la notion d'image interne, si je comprends bien c'est quelque chose d'inaccessible en Panoramic, seulement par l'intermédiaire du clipboard.

Donc, pour utiliser ces fonctions 'image interne', il faut d'abord copier l'image dans le clipboard, puis copier le clipboard dans l'image interne (fonction LoadPicture), exécuter la fonction désirée, puis recopier l'image interne résultat dans le clipboard (fonction SavePicture), puis récupérer le clipboard dans Panoramic par une fonction quelconque (clipboard_paste).
Ca me paraît assez complexe, mais est-ce bien ça ?

Une toute petite remarque sémantique: on doit écrire souligné, et non pas sousligné.

Une autre petite remarque: je vois les fonctions Brightness et Gamma, mais pas Contrast, d'habitude les trois vont ensemble...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 18:50

Tu as bien compris le principe de traitement.

Le picture Panoramic n'est pas un objet "fenêtré", n'a pas de handle et n'est pas accessible à partir d'une DLL.

Donc, je construis une image interne, invisible, qui est gérée par la DLL, et toutes les transformations ont lieu sur cette image. Tu peux faire plusieurs transformations, l'une après l'autre, sur l'image interne, sans repasser par la récupération via le presse-papier. En fait, la fonction SavePicture vide l'image interne dans le presse-papier et la supprime. La fonction LoadPicture charge l'image interne à partir du presse-papier. Si tu as fait SavePicture, tu dois refaire un LoadPicture après, si tu veux retravailler sir la même image.

Cependant, il y a un mode "immédiat". Ce mode copie automatiquement l'image interne dans le presse-papier, après chaque modification, sans pour autant la supprimer de façon interne. Le programme effets.bas utilise ce mode. Il suffit alors de faire un clipboard_paste après chaque modif pour voir le résultat.

PS.

Je prends note pour sousligné --> souligné, et je vais corriger. Merci.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images EmptyMer 1 Mai 2013 - 20:14

C'est bien ce que j'avais cru comprendre, mais je te remercie de me l'avoir confirmé si clairement, tant qu'à faire autant utiliser ces fonctions intelligemment.

Et maintenant... au travail !

Pour ergoter un peu, j'aurais appelé 'symétrie horizontale', la symétrie qui se fait autour de l'axe vertical, droite<->gauche, et réciproquement 'symétrie verticale' la symétrie autour de l'axe horizontal, haut<->bas.
Mais attention, ce que je dis est purement intuitif, pour moi, je ne sais pas quelle est la syntaxe scientifique exacte.

Super toutes ces fonctions, j'y retourne...
Revenir en haut Aller en bas
Contenu sponsorisé





Réduction d'images Empty
MessageSujet: Re: Réduction d'images   Réduction d'images Empty

Revenir en haut Aller en bas
 
Réduction d'images
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: