OVH Cloud OVH Cloud

cocoa et html root des images

17 réponses
Avatar
une.bevueVOTEZ
j'ai une fenêtre cocoa qui expose une image par le biais du html je
n'arrive pas à voir où il faut placer cette image, si je la met dans
Resources/

et que je met dans le html :
<img src="mon-image.png" />

elle n'est pas présentée...

si je met le path absolu de l'image, rien de mieux...

--
une bévue

10 réponses

1 2
Avatar
Schmurtz
(Une bévue) wrote:

j'ai une fenêtre cocoa qui expose une image par le biais du html je
n'arrive pas à voir où il faut placer cette image, si je la met dans
Resources/

et que je met dans le html :
<img src="mon-image.png" />

elle n'est pas présentée...

si je met le path absolu de l'image, rien de mieux...


Regarde dans la class NSBundle, il y a une méthode pour récupérer les
chemin d'accès vers le dossier mon_appli.app.

--
Schmurtz

Avatar
Eric Lévénez
Le 2/07/05 11:44, dans <1gz2lu8.17h4bcv13sag7wN%,
« Une bévue » a écrit :

et que je met dans le html :
<img src="mon-image.png" />

elle n'est pas présentée...


C'est du HTML ce /> pour terminer img ?

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Schmurtz
Eric Lévénez wrote:

« Une bévue » a écrit :

et que je met dans le html :
<img src="mon-image.png" />

elle n'est pas présentée...


C'est du HTML ce /> pour terminer img ?


C'est du XHTML : le XML oblige a fermer tous les tags. Le /> est une
syntaxe simplifié pour <img src="..."></img>.

Il se trouve aussi que la plupart des parseurs HTML non XHTML ne sont
pas gênés par ce / supplémentaire, sauf si le tag n'a pas d'attribut
(comme <br/> qui ne passe pas toujours, mais qui passe miex en <br />).

--
Schmurtz


Avatar
une.bevueVOTEZ
Schmurtz wrote:

Regarde dans la class NSBundle, il y a une méthode pour récupérer les
chemin d'accès vers le dossier mon_appli.app.


oui, merci, ça je sais, j'en tiens compte...

en fait qq'un m'a donné la réponse "in the mean time"

au lieu de mettre :

<img src="/path/absolu/to/image.png" />

il faut mettre :

<img src="file:///path/absolu/to/image.png" />
----------^^^^^^^-----------------------------

ce qui, amha, n'est pas "vraiment" conforme...


de plus j'ai un pb de css dans une NSTextView

voilà ce que j'ai avec safari :

<http://yvon-thoraval.com/cocoa/safari.png>

qui est un screenshot de la page
<http://yvon-thoraval.com/VinePlants/pinot-noir.html> avec safari.


par contre, dans un NSTextView j'obtiens :

<http://yvon-thoraval.com/cocoa/cjCave-2.png>

avec le "même" css, donc là, le texte ne coule pas autour de l'image, ce
qui me plait moins...


--
une bévue

Avatar
ftestuz
Une bévue wrote:

Schmurtz wrote:

Regarde dans la class NSBundle, il y a une méthode pour récupérer les
chemin d'accès vers le dossier mon_appli.app.


oui, merci, ça je sais, j'en tiens compte...

en fait qq'un m'a donné la réponse "in the mean time"

au lieu de mettre :

<img src="/path/absolu/to/image.png" />

il faut mettre :

<img src="file:///path/absolu/to/image.png" />
----------^^^^^^^-----------------------------

ce qui, amha, n'est pas "vraiment" conforme...


En quoi ? Il me semble que c'est un URL valide. Comme tu es dans un
fichier html, les src doivent être données sous la forme d'URL.

--
Frédéric Testuz


Avatar
une.bevueVOTEZ
Frédéric Testuz wrote:

Comme tu es dans un
fichier html, les src doivent être données sous la forme d'URL.


ben, perso, je n'ai jamais vu ça dans ce cadre là...

c'est vrai que href="http://..." c'est "normal"

mais aussi :

href="/path/from/root/to/fichier.bidule"

donc effectivement :

src="file:///path/from/root/to/fichier.bidule"

c'est ok mais

src="/path/from/root/to/fichier.bidule"

est + classique et aurait du marcher non ?

m'enfin le webkit et les NSTextView...

déjà il n'y a pas de specs et ça n'implémente pas tout ce que sait faire
safari...

par ex les margin en css ne marchent pas correctement

et, tjs en css, il n'est pas prévu (m'a t'on répondu sur cocoa-dev) les
flot:[left|right]...


--
une bévue

Avatar
ftestuz
Une bévue wrote:

Frédéric Testuz wrote:

Comme tu es dans un
fichier html, les src doivent être données sous la forme d'URL.


ben, perso, je n'ai jamais vu ça dans ce cadre là...

c'est vrai que href="http://..." c'est "normal"


file:// est une autre forme d'URI, tout comme ftp:// gopher:// etc.

mais aussi :

href="/path/from/root/to/fichier.bidule"

donc effectivement :

src="file:///path/from/root/to/fichier.bidule"


Les spécifications pour le html demande explicitement un URI :
<http://www.w3.org/TR/html4/struct/objects.html#h-13.2>

c'est ok mais

src="/path/from/root/to/fichier.bidule"


Ca ne devrait pas fonctionner mais peut-être que certains navigateurs
l'acceptaient.

est + classique et aurait du marcher non ?

m'enfin le webkit et les NSTextView...

déjà il n'y a pas de specs et ça n'implémente pas tout ce que sait faire
safari...

par ex les margin en css ne marchent pas correctement

et, tjs en css, il n'est pas prévu (m'a t'on répondu sur cocoa-dev) les
flot:[left|right]...


J'ai vu, mais vu ce que tu demandes, tu ne devrais pas plutôt utiliser
un WebView ? Dans un petit programme perso, c'est ce que je fait pour
imprimer un résumer d'une petite base de donnée.

--
Frédéric Testuz


Avatar
une.bevueVOTEZ
Frédéric Testuz wrote:

J'ai vu, mais vu ce que tu demandes, tu ne devrais pas plutôt utiliser
un WebView ? Dans un petit programme perso, c'est ce que je fait pour
imprimer un résumer d'une petite base de donnée.


possible, merci, jamais utilisé...
et tu arrives à faire en sorte que le texte "coule" autour de l'image ?
--
une bévue

Avatar
ftestuz
Une bévue wrote:

Frédéric Testuz wrote:

J'ai vu, mais vu ce que tu demandes, tu ne devrais pas plutôt utiliser
un WebView ? Dans un petit programme perso, c'est ce que je fait pour
imprimer un résumer d'une petite base de donnée.


possible, merci, jamais utilisé...
et tu arrives à faire en sorte que le texte "coule" autour de l'image ?


La WebView utilise le WebKit à fond. Il doit pouvoir rendre une page web
exactement comme Safari (pour les javascript il faut peut-être
implémenter aussi certaines méthodes delegate).

Je crois que tu génères ton code html sans fichier, pour utiliser une
WebView :

[[myWebView mainFrame] loadHTMLString:myHTMLString baseURL:[NSURL
fileURLWithPath:@"/path/to/base"];

Ca te permet en plus d'utiliser une base et donc de faire des liens
relatifs dans ton code html. Attention, /path/to/base *doit* pointer sur
un *fichier* (pas un dossier) qui existe.

Ensuite le rendu est fait en asynchrone, si tu veux savoir quand un
frame a finit de se charger, le frameLoadDelegate de la WebView doit
implémenter :

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame
*)frame

Ca marche facilement si la page n'a qu'un cadre.

--
Frédéric Testuz


Avatar
une.bevueVOTEZ
Frédéric Testuz wrote:

Ca marche facilement si la page n'a qu'un cadre.


ouais, merci beaucoup, un p'tit essai :

<http://yvon-thoraval.com/cocoa/webkit.png>

à partir d'un zip trouvé là :

<http://www.cocoabuilder.com/archive/message/cocoa/2004/7/6/111121>

l'essayer, c'est l'adopter ;-)

nb : je roule en cocoa-java mais je pense qu'avec un petit effort je
pourrais assez facilement faire la traduction obj-c -> java

j'utilise java pour deux raisons essentielles : je connais java et
j'utilise une base de donnée java (persistence), base de données
orientées objet, en fait on store dans la bd des objets (ce n'est pas du
tout du sql)...
--
une bévue

1 2