\documentclass{article}
\usepackage[a4paper,showframe]{geometry}
\usepackage{graphicx}
\usepackage{mwe}
\ExplSyntaxOn
% #1 : texte optionnel à mettre avant l'image
% #2 : arguments optionnels passés à \includegraphics
% #3 : chemin vers l'image
\NewDocumentCommand \includegraphicsajusted { o o m }
{
% Variables :
% \l_tmpa_dim : hauteur du texte à mettre avant
% \l_tmpb_dim : hauteur de l'image
% \l_tmpa_box : boîte qui contient le texte à mettre avant
% \l_tmpb_box : boîte qui contient l'image
% teste s'il y a du texte à mettre en haut de page
\IfNoValueTF {#1}
{% si non on met sa hauteur à 0 et sa boîte vide
\dim_set:Nn \l_tmpa_dim {0pt}
\box_set_eq:NN \l_tmpa_box \c_empty_box
}
{% si oui on la calcule
% ICI JE N'ARRIVE PAS À TROUVER DE SOLUTION
\dim_set:Nn \l_tmpa_dim {0pt}
\box_set_eq:NN \l_tmpa_box \c_empty_box
}
% on détermine la hauteur de l'image si sa largeur est la même que celle du texte
\hbox_set:Nn \l_tmpb_box
{
\IfNoValueTF {#2}
{ \includegraphics[width=\textwidth]{#3} }
{ \includegraphics[width=\textwidth,#2]{#3} }
}
\dim_set:Nn \l_tmpb_dim { \box_ht:N \l_tmpb_box + \box_dp:N \l_tmpb_box }
% on teste si ainsi l'image dépasse dans la marge du bas