# Copyright (C) 2002-2004 gregoire HUBERT.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author : gregoire HUBERT Alors que le débat fait rage depuis quelques mois sur l'avenir de la vente de photos, Flickr a pris une position intéressante en juillet 2008 en devenant partenaire de Getty Images. Nous revenons aujourd'hui sur l'accord entre les deux géants de l'image en ligne, suite à l'article paru sur Site Point. Il y a quelques jours, le site anglais mettait en lumière une autre possibilité qu'avait Flickr avant de choisir Getty. Il y a 6 mois, pendant l'été 2008, Flickr annonçait sur son blog un partenariat avec le géant de la vente de photographies sur Internet, Getty Images. Ce dernier, partenaire de l'AFP et du festival Visa Pour l'Image, deviendra ainsi la vitrine commerciale de Flickr dès Mars prochain. Les équipes de Getty Images se sont attelées à la lourde tâche de parcourir les 3 milliards de photos qui composent Flickr pour ensuite contacter les photographes intéressants et leur proposer de vendre leurs photos. Les clichés sélectionnés se verront ajoutés à une prochaine collection d'images dédiée sur le site de Getty. Selon Andy Saunders, vice-président de Getty, l'objectif est d'augmenter le stock de photos avec du contenu local de qualité : « la philosophie de Flickr en terme de partage personnel et de réactivité a d'ores et déjà impacté la photographie commerciale ». Cependant, pour arriver à ce partenariat, Flickr a dû faire une croix sur une plateforme de vente de photos qui n'aura jamais vu le jour : Flickr Stock. Le principe était de permettre à tous les membres de vendre leurs clichés, et d'acheter ceux des autres membres. Après un rapide calcul, le site anglais Site Point nous parle de plusieurs millions de dollars de profit mis de côté. Le site iStockphoto possède 3,2 millions de photos en vente et génère des bénéfices de 70 millions de dollars. Il est donc aisé de penser que Flickr, en ne proposant à la vente par exemple que 0,001% de ses 3 milliards de photos, génèrerait au moins les mêmes bénéfices. Oui, mais ce n'est que le côté commercial et financier de la chose. En effet, doit-on laisser l'industrie de la photographie et la vente de clichés en ligne continuer dans une voie purement pécuniaire, au détriment de la qualité et du talent photographique ? Certes, créer une plateforme de vente pour toutes les photos de Flickr aurait permis de réduire l'utilisation très abusive des 3 milliards photos. En effet, un nombre incalculable de blogs et de sites se servent dedans sans tenir compte des licences Creative Commons associées. Impossible pour un utilisateur lambda de contrôler l'utilisation gratuite de sa photographie à l'autre bout du monde, et ses possibles revenus à son insu. La création d'une plateforme commerciale pour l'intégralité du stock Flickr aurait donc aussi pu inciter les éditeurs de sites web - ou autre - à se régulariser, quelle que soit la photo choisie. Mais en choisissant de laisser Getty Images choisir les images qu'il souhaite vendre à ses clients, on conserve cependant un véritable contrôle sur la qualité photographique. Getty ne créera pas un microstock avec les images de Flickr. On ouvre un marché de professionnels à des amateurs de talent... sans pour autant ouvrir grand les portes. Ceci aurait signifié par exemple un certain "assassinat" de la vente de photo d'actualités réactives et locales en ligne. Un éditeur fera une belle économie en achetant une photo "suffisante" à 1€ à un particulier, plutôt que de payer à sa juste valeur un cliché professionnel de réelle qualité. Bilan : le professionnel ne sera pas rémunéré pour sa profession, et on assistera à une baisse sensible de la qualité des images dans les magazines et journaux, que se soit en ligne ou sur papier. Flickr a donc abandonné Flickr Stock, passant à côté d'une probable mine d'or et de la régularisation des clichés trop souvent pillés sur le site communautaire. Mais cela aura permis aux professionnels de conserver un certain status et une reconnaissance en ne simplifiant la vente de photos via l'agence Getty qu'aux amateurs de talent. A noter, quelques réactions de la communauté française de Flickr (voir ici) ; Et celles de la communauté anglaise (voir ici). Article par Pierre_G le 29/01/09 - 13:15 Publicité
\n";
#echo "GET-NODE($index_start,$index_stop)
\n";
# What we are going to return is an array of xml_nodes
$return_tab = array();
# depth is only here to check if everything is all right
$tab_node = $this->value[$index_start];
$depth = $tab_node["level"]-1;
# Now we have to be sure we do not forget a single node
for ($index = $index_start;$index <= $index_stop;$index++) {
#echo "\$index = $index
";
# get the current node
$tab_node = $this->value[$index];
# what type of node is it ?
switch($tab_node["type"]) {
case "complete" :
# Depth integrity check
if ($tab_node["level"] != $depth+1) {
die("ERREUR # contrainte d'intégrité au noeud complet $index, niveau $depth + 1 au lieu de ".$tab_node["level"]);
}
#echo "Noeud complet trouvé position $index TAG ".$tab_node["tag"]."
\n";
# Easy one, no children to manage, only a value...
$return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],"",$tab_node["value"]);
break;
case "open" :
# Depth integrity check
if ($tab_node["level"] != $depth +1 ) {
die("ERREUR # contrainte d'intégrité au noeud ouvert $index, niveau $depth au lieu de ".$tab_node["level"]);
}
# Open tag, we re-use this methode to return its children
# Where is the correspondong close tag ?
$node_index = $this->index[$tab_node["tag"]];
$flipped_node_index = array_flip($node_index);
#echo "This ".$tab_node["tag"]." is at coords ".$flipped_node_index[$index]."
";
$i=1;
do {
$next_index = $node_index[$flipped_node_index[$index] + $i++];
$next_tag=$this->value[$next_index];
}
while ($next_tag["level"]!=$tab_node["level"]);
#echo "Ouverture de noeud détectée pos $index TAG ".$tab_node["tag"]."
\n Parcours jusqu au $next_index
\n";
# good, we can now instanciate our node
$return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],$this->get_node($index+1,$next_index),"");
# As we called the get_node methode, we are sure that nodes have been parsed to the corresponding close tag
$index = $next_index;
break;
case "close" :
# Depth integrity check
if ($tab_node["level"] != $depth ){
die("ERREUR # contrainte d'intégrité au noeud fermé $index, niveau $depth au lieu de ".$tab_node["level"]);
}
#echo "Fermeture de noeud detectée pos $index TAG ".$tab_node["tag"]."
\n";
# This ugly thing is useless because reaching a close tag means that $index==$index_stop but who knows ? =)
# it will be skipped soon
$index = $index_stop;
break;
default:
die("Erreur de type de TAG non déterminé :'".$tab_node["type"]."'");
}
}
# We are out ... returns the array with collected children...
return ($return_tab);
}
# this function browse the xml tree and set the current node to the selected node
public function give_node($path) {
if ($path[0]=="/") {
$current_node=$this->root_node;
$path=substr($path,1);
#echo "ABSOLUTE PATH GIVEN=$path
";
}
else {
$current_node = $this->current_node;
}
#echo "PATH GIVEN=$path
";
$tab_path = split("/",$path);
foreach ($tab_path as $node_expr) {
#echo "STUDYING EXPR='$node_expr'
";
$node = $current_node;
$expr_tab = split("\?",$node_expr);
$node_name = $expr_tab[0];
$attr_tab = 0;
if (count($expr_tab)>1) {
##echo "TROUVE AU MOINS UNE CONDITION SUR LES ATTRIBUTS...
";
$attr_expr_tab=split(",",$expr_tab[1]);
$attr_tab=array();
foreach($attr_expr_tab as $attr_expr) {
$attr_split_expr=split("=",$attr_expr);
$attr_tab[$attr_split_expr[0]]=$attr_split_expr[1];
}
}
$last=0;
foreach ($node->children as $children) {
#echo "COMPARING WITH '$children->name'
";
if ($children->name == $node_name) {
##echo "TROUVE NOEUD CORRESPONDANT $node_name
";
if (is_array($attr_tab)) {
$node_attributes = $children->attributes;
foreach ($attr_tab as $key=>$value) {
if ($node_attributes[$key] == $value) {
#echo "ATTRIBUTE & CHANGE CURRENT NODE TO ".$children->name."
";
$current_node = $children;
$last = 1;
}
}
}
else {
##echo "CHILD=".$children->name."
";
#echo "CHANGE CURRENT NODE TO ".$children->name."
";
$current_node = $children;
$last=1;
}
}
if ($last) {
break;
}
}
if (!$last) {
#echo "PATH ERROR $node_name
";
#die("MMmmmh It seems that this file is not a DIA XML format...sorry...");
return 0;
}
}
return $current_node;
}
public function browse_tree($path) {
$node = $this->give_node($path);
if (is_object($node)) {
$this->current_node = $node;
return 1;
}
return 0;
}
# this method dumps an html representation of the xml tree
public function xml_show($node = "",$level=0,$last=0) {
if ($node=="") {
$node=$this->root_node;
}
if (!is_object($node)) {
die("ERROR : node is not an object");
}
$line="";
for($i=1;$i<=$level;$i++) {
if ((i==$level-1) and ($last)) {
$line.=" ";
}
else {
$line.=" |";
}
if ($i==$level) {
$line.="`-";
}
}
$line.=$node->name;
#echo $line;
$line.="".count($node->children)."";
if (count($node->children)==1) {
$line.=" (".$node->value.")
\n";
echo "$line";
}
else {
$line.="
\n";
echo "$line";
$i=1;
foreach($node->children as $children) {
if ($i==count($node->children)) {
$this->xml_show($children,$level+1,1);
}
else {
$this->xml_show($children,$level+1);
}
$i++;
}
}
}
#END_CLASS
}
Flickr et Getty
29/01/09 - 13:15 - Analyse d'un partenariat