electroremy Posté(e) Juillet 20 Posté(e) Juillet 20 (modifié) Bonjour, Si vous faites de la photo, vous connaissez sûrement le petit programme ShiftN Il permet de corriger la perspective Voici un exemple Avant / Après Parfois, il est nécessaire de sélectionner manuellement les lignes qui sont reconnues comme verticales à la souris. Le bouton gauche permet de désélectionner les lignes (les mettre en rouge) et le bouton droit permet de les sélectionner (les mettre en vert) C'est assez fastidieux. Je viens de télécharger le code source de ShiftN et de le modifier pour permettre de faire un rectangle de sélection multiple à la souris avec la touche CTRL, ce qui est beaucoup plus rapide quand il y a toute une zone où il faut sélectionner ou désélectionner des lignes La nouvelle version est téléchargeable ici : https://drive.google.com/file/d/1-eFfFfUf7K6LIpbKCbE23qBv-ccYLDVx/view?usp=drive_link Pour ceux que ça intéresse, voici le fichier modifié dans le code source : https://drive.google.com/file/d/1c4d50LdON7sll4XtWEONp7Cl-mhatOOo/view?usp=sharing Le code source original complet est téléchargeable ici : https://www.shiftn.de/ A bientôt Modifié (le) Juillet 20 par electroremy 1 2
pjtlivjy Posté(e) Juillet 20 Posté(e) Juillet 20 merci pour la partie @electroremy, je ne connaissais pas l'auteur partage son code source ?
electroremy Posté(e) Juillet 20 Auteur Posté(e) Juillet 20 (modifié) Oui, je viens de compléter mon message Pas de dépôt Git Hub il faudrait que j'en créé un. Je viens d'écrire un mail à l'auteur, je verrais s'il me répond (son mail n'est peut être plus valide) Le programme n'est pas mis à jour depuis longtemps. Sinon je viens de trouver un bug (déjà présent dans la version originale) à corriger : si dans les paramètres de sortie on ne choisi pas de suffixe, le fichier orignal est écrasé... y compris avec la fonction "enregistrer sous" - Je viens de jeter un œil dans le code et je ne comprend pas pourquoi... il faudra que je me plonge dessus plus tard. Modifié (le) Juillet 20 par electroremy 1 1
electroremy Posté(e) Juillet 21 Auteur Posté(e) Juillet 21 Bonne nouvelle l'auteur m'a répondu ; il m'autorise à créer un dépôt Git J'ai ajouté une fonction plus tolérante pour la sélection multiple avec le bouton SHIFT (les lignes sont sélectionnées ou désélectionnées si leur centre est dans le rectangle de sélection) ; je tâche de trouver comment corriger le bug de la fonction "enregistrer sous" et après je publie Révélation Pour ceux que ça intéresse, la fonction sauver sous Le suffixe est stocké dans la variable m_suffix void CShiftNView::OnSaveAs() { int i; int ind; int tmp=0; int x_neu; int y_neu; CDC* pDC; CString dateiname; Keine_Ergebnisse noresultsdlg; CFileDialog CDatei(FALSE); switch (sprach) { case 1: CDatei.m_ofn.lpstrTitle="Save as..."; break; case 2: CDatei.m_ofn.lpstrTitle="Enregistrer sous..."; break; case 3: CDatei.m_ofn.lpstrTitle="Guardar como..."; break; default: CDatei.m_ofn.lpstrTitle="Speichern unter..."; break; } switch (sprach) { case 1: CDatei.m_ofn.lpstrFilter="(none)\0*.*\0\0"; break; case 2: CDatei.m_ofn.lpstrFilter="(Tous les fichiers)\0*.*\0\0"; break; case 3: CDatei.m_ofn.lpstrFilter="(Todos los archivos)\0*.*\0\0"; break; default: CDatei.m_ofn.lpstrFilter="(kein)\0*.*\0\0"; break; } if (selektion_vorhanden>1) tmp=selektion_vorhanden; if (!ergebnis_vorhanden) { noresultsdlg.DoModal(); } else { if (direkt_speichern) dateiname=m_sdateiname; else dateiname=m_dateiname; ind=1; for (i=0; i<dateiname.GetLength(); i++) { if (dateiname.GetAt(i)=='.') ind=0; if (dateiname.GetAt(i)=='\\') ind=1; } if (ind) dateiname+=".bmp"; if (!direkt_speichern) { i=dateiname.GetLength()-1; ind=1; while ((ind) && (i)) { if (dateiname.GetAt(i)=='.') ind=0; if (ind) i-=1; } dateiname=dateiname.Left(i)+m_suffix; } else { i=dateiname.GetLength()-1; ind=1; while ((ind) && (i)) { if (dateiname.GetAt(i)=='.') ind=0; if (ind) i-=1; } dateiname=dateiname.Left(i); } CDatei.m_ofn.lpstrFile=(char*) malloc(_MAX_PATH+1); for (i=0; i<dateiname.GetLength(); i++) CDatei.m_ofn.lpstrFile[i]=dateiname.GetAt(i); CDatei.m_ofn.lpstrFile[i]='\0'; if (CDatei.DoModal()==IDOK) { pDC=GetDC(); dateiname=CDatei.GetPathName(); ind=1; for (i=0; i<dateiname.GetLength(); i++) { if (dateiname.GetAt(i)=='.') ind=0; if (dateiname.GetAt(i)=='\\') ind=1; } if (ind) dateiname+=".bmp"; i=dateiname.GetLength()-1; ind=1; while ((ind) && (i)) { if (dateiname.GetAt(i)=='.') ind=0; if (ind) i-=1; } dateiname=dateiname.Left(i)+".bmp"; selektion_vorhanden=tmp; schreibe_bild(1,4,x_global,y_global,dateiname,1,1,x_neu,y_neu); OnDraw(pDC); ReleaseDC(pDC); } free(CDatei.m_ofn.lpstrFile); } } 2
electroremy Posté(e) Juillet 21 Auteur Posté(e) Juillet 21 Ca y est le bug est corrigé J'ai tout publié sur Git Hub (le code source original mis à jour ainsi que la nouvelle version portable) https://github.com/electroremy/ShiftN A bientôt
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant