|
|||||||
| Dveloppements Tout ce qui touche au dveloppement d'applications ou du Web |
![]() |
|
|
LinkBack | Outils de la discussion | Modes d'affichage |
|
|
#1 (permalink) |
|
Petit Deviendra Grand !
![]() Date d'inscription: juin 2005
Messages: 372
Pouvoir de rputation: 39
![]() |
Bonjour,
J'ai un site Internet ActualitéMobile.com - Toute l'actualité mobile, pdaphone, et smatphone... utilisant le CMS de blog Dotclear... Avec ceci j'utilise un plugin supplmentaire d'upload d'image trs pratique, qui est capable de gnrer une miniature de la taille que l'on veut et de redimensionner l'image principale... Cependant j'aimerais savoir si il serait possible de modifier le script d'upload, et ainsi lui demander de rajouter un filigrane ou juste un petit copyright en bas de l'image. J'aimerais aussi que le script permette de donner un nouveau nom l'image dans le formulaire. Mais pour plus tard... Cela est il possible ?
__________________
Mon PC : AMD Athlon 64 3200+ - ASUS A8N5X - 2x512Mo(dual-chanel) - Lecteur DVD - Graveur DVD Benq - MSI Nvidia NX7600GS 256Mo PCIe - DD 80Go 8Mo - DD Maxtor 200Go 8Mo - Boitier Asus TA-211 Serveur : Athlon XP 1800+ - MSI KT4 - 512RAM - RADEON 9600XT - Graveur CD Philips - DD 15Go 2Mo(systeme) - ExcelStor 80Go 2Mo - Boitier NOVA btx TlphoneOrange SPV M700 Blanc ! Trop bien... |
|
|
|
|
|
#3 (permalink) |
|
Petit Deviendra Grand !
![]() Date d'inscription: juin 2005
Messages: 372
Pouvoir de rputation: 39
![]() |
Probablement, mais puisque parmi vous il y a de bons codeurs php je me suis dit que j'avais peut etre une change !
Je vais essay sur le forum Dotclear !
__________________
Mon PC : AMD Athlon 64 3200+ - ASUS A8N5X - 2x512Mo(dual-chanel) - Lecteur DVD - Graveur DVD Benq - MSI Nvidia NX7600GS 256Mo PCIe - DD 80Go 8Mo - DD Maxtor 200Go 8Mo - Boitier Asus TA-211 Serveur : Athlon XP 1800+ - MSI KT4 - 512RAM - RADEON 9600XT - Graveur CD Philips - DD 15Go 2Mo(systeme) - ExcelStor 80Go 2Mo - Boitier NOVA btx TlphoneOrange SPV M700 Blanc ! Trop bien... |
|
|
|
|
|
#5 (permalink) |
|
Petit Deviendra Grand !
![]() Date d'inscription: juin 2005
Messages: 372
Pouvoir de rputation: 39
![]() |
Si a vous intresse je vous tiens au courant de l'avancement de ce que je demande...
![]()
__________________
Mon PC : AMD Athlon 64 3200+ - ASUS A8N5X - 2x512Mo(dual-chanel) - Lecteur DVD - Graveur DVD Benq - MSI Nvidia NX7600GS 256Mo PCIe - DD 80Go 8Mo - DD Maxtor 200Go 8Mo - Boitier Asus TA-211 Serveur : Athlon XP 1800+ - MSI KT4 - 512RAM - RADEON 9600XT - Graveur CD Philips - DD 15Go 2Mo(systeme) - ExcelStor 80Go 2Mo - Boitier NOVA btx TlphoneOrange SPV M700 Blanc ! Trop bien... |
|
|
|
|
|
#7 (permalink) |
|
Petit Deviendra Grand !
![]() Date d'inscription: juin 2005
Messages: 372
Pouvoir de rputation: 39
![]() |
Bon et bien rsultats de mes recherches sur le forum de Dotclear ! Pas grand chose ! Mis part qu'ils ne sont pas super sympa sur ce forum !
J'ai trouv ce que je voulais ici Crer des images en PHP - PHP - Lecture du tutorial - Le Site du Zro au titre "Mlanger deux images" Cependant je ne suis pas capable de l'intgr mon script qui est le suivant, il est long... Code:
<?php
class clickimage
{
/*** Création dossier ***/
function mk_chemin($chemin)
{
echo "function mk_chemin($chemin)<br>";
chdir(dirname(__FILE__).'/../../../');
$chemin = substr($chemin,0,-1);
if (!is_dir ($chemin))
{
$dir= explode('/',$chemin);
while (pos($dir))
{
if (!is_dir(pos($dir))) {
if (!mkdir(pos($dir))) {
exit (__('Erreur').' : Cration du dossier'.pos($dir).clickimage::retour());
}
@chmod (pos($dir), 0755);
}
chdir(pos($dir));
next($dir);
}
}
return true;
}
/*** Eclate le chemin du fichier en chemin,nom,extension ***/
function eclater($fichier)
{
$point = strrpos ($fichier, '.');
$slash = strrpos ($fichier, '/');
//$chemin = substr($fichier, 0, $slash+1);
$nom = substr($fichier, $slash+1, $point-$slash-1);
$ext = substr($fichier, $point+1);
return array(/*'chemin' => $chemin , */'nom' => $nom , 'ext' => $ext);
}
/*** Création miniature (recadrage et dimmension) ***/
function miniature($orig, $mode='orig') //image a reduire, mode (min : création miniature , orig reduction original)
{
global $userconf, $globalconf, $img_click, $dest_dossier;
echo "function miniature($orig, $mode)<br>";
$type = substr(strrchr($orig, '.'), 1);
//Chemin nouvelle image
$orig_eclater = clickimage::eclater($orig);
//echo "<br>$min<br>";
// Cherche la config
if ($mode == 'min')
{
$min = $dest_dossier . str_replace(array('%nom%', '%ext%'), array($orig_eclater['nom'],$orig_eclater['ext']), $globalconf['nom_min']);
if ($_POST['change_reso'] == 'checked') {
echo "min-reso : user<br>";
$resoL = $userconf['min_reso_L'];
$resoH = $userconf['min_reso_H'];
} else {
echo "min-reso : global<br>";
$resoL = $globalconf['min_reso_L'];
$resoH = $globalconf['min_reso_H'];
}
if ($globalconf['popup_recadrer'] == 'checked') {
$recadrer = $userconf['recadrer'];
} else {
$recadrer = $globalconf['recadrer'];
}
}
elseif ($mode == 'orig')
{
$min = $orig;
//$min = $dest_dossier.'tmp_'.$orig_eclater['nom'].'.'.$orig_eclater['ext'];
$resoL = $globalconf['orig_reso_L'];
$resoH = $globalconf['orig_reso_H'];
$recadrer = '';
}
else
{
exit(__('Erreur').' : function miniature() : mode <code>$mode</code> inconnu'.clickimage::retour());
}
/*if ($globalconf['gd_ko'] == 'checked')
{
//Si il y a des problèmes de libraire GD, utilisation de la fonction de dotclear mais perte de fonctionnalité
require dirname(__FILE__).'/../../../inc/libs/lib.image.php';
echo "<br>funciton mini de dc<br>";
if (($img_type = images::type($orig)) !== false) {
images::cropImg($orig,$min,$img_type,$resoL,$resoH);
} else {
exit ('erreur dans la fonction miniature() : n\'arrive pas a reduire les images avec la fonction de dotclear');
}
echo "<br>
min : $min <br>
orig : $orig <br>
img_type : $img_type<br>
resoL : $resoL <br>
resoH : $resoH <br>
<img src=\"$min\" alt=\"min\"><br>";
}
else*/
{
echo "extention : $type<br>";
// Création de l'image en fonction de l'extention
if (in_array($type, explode(',',$globalconf['ext_jpg']))) {
$origtmp = ImageCreateFromJpeg($orig); //les jpeg
} elseif (in_array($type, explode(',',$globalconf['ext_gif']))) {
$origtmp = ImageCreateFromGif($orig); //les gif
} elseif (in_array($type, explode(',',$globalconf['ext_png']))) {
$origtmp = ImageCreateFromPng($orig); // les png
} else {
echo (__('Erreur').' : function miniature() : extension <code>'.$type.'</code> inconnue'.clickimage::retour());
exit();
}
// Résolution de l'image
$Lorig = imagesx($origtmp);
$Horig = imagesy($origtmp);
if (($Lorig <= $resoL && $Horig <= $resoH) || ($recadrer == 'checked' && ($Lorig <= $resoL || $Horig <= $resoH && $mode == 'min')))
//si (hauteur ET larger original < miniature) ou (recadrage image + mode minature + hauteur OU largeur original < miniature)
{
if ($mode == 'min') {
$img_click = false;
} //elseif $mode == 'orig' : ne pas toucher a la variable
}
/*elseif ($recadrer == 'checked' && ($Lorig <= $resoL || $Horig <= $resoH))
{
//hauteur OU largeur original < miniature
$img_click = false;
}*/
else
{
if ($mode == 'min') {
$img_click = true;
} //elseif $mode == 'orig' : ne pas toucher a la variable
$Xorig = 0;
$Yorig = 0;
//trouver les dimensions de redimensionnement
if ($Lorig/$Horig <= $resoL / $resoH)
{
//image trop haute
if ($recadrer == 'checked') {
$Lmin = $resoL; //Largeur de la miniature
$Hmin = $resoH /*($resoL / $Lorig) * $Horig*/; //Hauteur de la miniature
$Yorig = ($Horig - ($Lorig / $resoL * $resoH)) / 2; //Hauteur où on commence la capture dans l'image d'origine
$Horig = $Lorig / $resoL * $Hmin; //Hauteur prendre dans l'image d'origine
} else {
$Hmin = $resoH;
$Lmin = ($resoH / $Horig) * $Lorig;
}
}
else
{
//image trop large
if ($recadrer == 'checked') {
$Hmin = $resoH;
$Lmin = $resoL /*($resoH / $Horig) * $Lorig*/;
$Xorig = ($Lorig - ( $Horig / $resoH * $resoL)) / 2;
$Lorig = $Horig / $resoH * $Lmin;
} else {
$Lmin = $resoL;
$Hmin = ($resoL / $Lorig) * $Horig;
}
}
//création d'une image vide
if ($recadrer == 'checked') {
$imgtmp = ImageCreateTrueColor ($resoL, $resoH)
or die (__('Erreur').' : lors de la création d\'une image vide 1');
} else {
$imgtmp = ImageCreateTrueColor ($Lmin, $Hmin)
or die (__('Erreur').' : lors de la création d\'une image vide 2');
}
/*if (in_array($type, explode(',',$globalconf['ext_png'])) && $globalconf['png_alpha'] == 'checked') {
// Si sauvegarde alpha png + image de type png
echo "<br>save alpha</br>";
imagealphablending($origtmp, false);
imagesavealpha($origtmp, true);
imagealphablending($imgtmp, false);
imagesavealpha($imgtmp, true);
ImageCopyResampled($imgtmp, $origtmp, 0, 0, $Xorig, $Yorig, $Lmin, $Hmin, $Lorig, $Horig);
//imagesavealpha($imgtmp, true);
}
else*/
{
ImageCopyResampled($imgtmp, $origtmp, 0, 0, $Xorig, $Yorig, $Lmin, $Hmin, $Lorig, $Horig);
}
if (in_array($type, explode(',',$globalconf['ext_jpg']))) { // creation d'un
ImageJpeg($imgtmp, $min, $globalconf['qualite_jpg']); // jpg
} elseif (in_array($type, explode(',',$type, $globalconf['ext_gif']))){
ImageGif($imgtmp, $min); // gif
} else {
ImagePng($imgtmp, $min); // png
}
//@chmod ($min,0644);
}
return $min;
}
}
/*** Envoie fichier venant du disque dur ***/
function envoi($fichier)
{
global $extensions_ok, $dest_dossier, $userconf, $globalconf;
chdir(dirname(__FILE__).'/../../../');
$itisimg = 1; //c'est une image (initialisation de la variable)
// vérifications de l'extention
if( !in_array( substr(strrchr($_FILES[$fichier]['name'], '.'), 1), $extensions_ok ) )
{
echo __('Erreur').' : <code>'.substr(strrchr($_FILES[$fichier]['name'], '.'), 1).'</code> '.__('N\'est pas un fichier de type jpg, png ou gif !').'<br>';
return false;
}
// vérification de la taille max
elseif( file_exists($_FILES[$fichier]['tmp_name'])
and filesize($_FILES[$fichier]['tmp_name']) > $globalconf['taille_max']*1048576)
{
echo __('Erreur').' : Fichier plus gros que '.$globalconf['taille_max'].'Mo !<br>';
return false;
}
// si c'est une image pas trop grosse => envoi
else
{
//modif de variable serveur (marche pas chez free.fr)
ini_set('memory_limit', ($globalconf['taille_max']*1048576)); // en octets
//set_time_limit(3600); // en secondes
// COPIE FICHIER
$dest_fichier = basename($_FILES[$fichier]['name']);
// nettoyage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝ áâãäåçèéêëì*îïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
$orig = $dest_dossier . $dest_fichier;
move_uploaded_file($_FILES[$fichier]['tmp_name'], $orig);
chmod ($orig,0644);
echo "envoi de $dest_fichier : OK<br>";
return $orig;
}
}
/*** Copie de fichier venant d'internet ***/
function copier($img_web)
{
//global $extensions_ok, $dest_dossier, $taille_max, $racine_blog,$min_reso_H,$min_reso_L,$reduct_orig,$orig_reso_H,$orig_reso_L;
global $extensions_ok, $dest_dossier, $globalconf;
chdir(dirname(__FILE__).'/../../../');
$dest_fichier = substr(strrchr($img_web, '/'), 1);
$img = clickimage::eclater($img_web);
$itisimg = 1; //c'est une image (initialisation de la variable)
//le champ champ d'envoie est-il vide ?
if($img_web == null)
{
$msgerreur = __('Erreur').' : Le champ d\'envoi est vide !<br>';
$itisimg = 0;
}
// vérifications de l'extention
elseif( !in_array($img['ext'], $extensions_ok))
{
$msgerreur = __('Erreur').' : le fichier n\'est pas un fichier de type jpg, png ou gif !<br>';
$itisimg = 0;
}
// si c'est une image -> copie
if($itisimg == 1)
{
$orig = $dest_dossier.$img['nom'].'.'.$img['ext'];
if (!copy($img_web, $orig))
{ echo __('Erreur').' : La copie du fichier n\a pas réussi<br>'; }
return $orig;
}
else
{
echo $msgerreur;
return false;
}
}
/*** Creation des liens et affichage de ceux-ci ***/
function lien($min, $orig)
{
global $img_click, $dest_dossier, $globalconf, $userconf;
echo "min : $min , orig : $orig <br>";
$min = dc_app_url.'/'.$min;
$orig = dc_app_url.'/'.$orig;
$texte = addslashes/*(clickimage::add_quotes*/($_POST['texte'])/*)*/;
if ($_POST['mode_album']) {
if ($_POST['album'] == '') {
$album = 'album';
} else {
$album = $_POST['album'];
}
} else {
$album = "LIGHT";
}
if ($img_click) {
$click = 'click';
}
if ($globalconf['popup_position'] == 'checked') {
$position = $userconf['position'];
} else {
$position = $globalconf['position'];
}
echo '<p> valtab : code_'.$_POST['format'].$click.'_'.$position.'</p>';
return (str_replace(array('%min%','%orig%','%texte%','%album%'), array($min,$orig,$texte,$album), $globalconf['code_'.$_POST['format'].$click.'_'.$position]));
}
/*** Lien retour ***/
function retour()
{
echo '<p style="text-align : center; vertical-align : bottom;"><a href="clickimage.php?format='.$_GET['format'].'">['.__('retour').']</a></p>';
}
/*** En fonction de l'activation des magic_quotes_gpc protège ou non la chaine de caractères ***/
function add_quotes($chaine)
{
if (get_magic_quotes_gpc())
{
return str_replace("\'","\\\\\'",$chaine);
} else {
return str_replace("\'","\\\\\'",addslashes($chaine));
}
}
/*** Balise option ***/
function option($pref, $champ, $value, $texte) //tableau de préférence, valeur du champ, texte
{
if ($value == $pref[$champ]) {
return '
<option value="'.$value.'" selected>'.$texte.'</option>';
} else {
return '
<option value="'.$value.'">'.$texte.'</option>';
}
}
/*** Case cocher ***/
function checked($pref, $name) //tableau de preférence, nom du champ
{
return '
<input type="hidden" name="'.$name.'" value=""><input type="checkbox" name="'.$name.'" '.$pref[$name].' value="checked">';
}
/*** Ecriture des fichiers de configuration ***/
function writeconf($file,$var) //fichier où ecrire (chemin par rapport ce fichier), tableau variable/valeur
{
$file = dirname(__FILE__).$file;
$ini = new IniFile($file);
reset($var);
if (is_writable($file))
{
while (list($cle,$val) = each($var))
{
$ini->editVar($cle,$val);
}
}
elseif (!file_exists ($file))
{
while (list($cle,$val) = each($var))
{
$ini->file = $file;
$ini->createVar($cle,$val);
}
}
else
{
return false;
}
if ($ini->saveFile() !== true)
{
return false;
}
return true;
}
/*** Lecture du fichier de configuration ***/
function readconf($file) //fichier où lire (chemin partir de ce fichier). La fonction retourn un tableur des clefs/valeurs
{
return IniFile::read(dirname(__FILE__).$file, true);
}
/*** Hauteurs du popup en fonction des options coché ***/
function h_popup()
{
$Hplier = 300; //hauteur initial
if ($_POST['popup_imghdd']) {
$Hplier += 55;
}
if ($_POST['popup_imgweb']) {
$Hplier += 55;
}
if ($_POST['popup_position']) {
$Hplier += 55;
}
$Hdeplier = $Hplier;
if ($_POST['popup_reso']) {
$Hdeplier+= 50;
}
if ($_POST['popup_recadrer']) {
$Hdeplier+= 30;
}
if ($_POST['preconf'] == 'lightbox') {
$Hdeplier+= 50;
}
return array ('h_popup_plier' => $Hplier , 'h_popup_deplier' => $Hdeplier);
}
}
?>
En fait je voudrais donc qu'une image se place sur seulement la grande image, et pas la miniature. En tout cas merci d'avance aux supers codeurs si il y en a qui peuvent m'aider... Merci beaucoup ! Max ![]()
__________________
Mon PC : AMD Athlon 64 3200+ - ASUS A8N5X - 2x512Mo(dual-chanel) - Lecteur DVD - Graveur DVD Benq - MSI Nvidia NX7600GS 256Mo PCIe - DD 80Go 8Mo - DD Maxtor 200Go 8Mo - Boitier Asus TA-211 Serveur : Athlon XP 1800+ - MSI KT4 - 512RAM - RADEON 9600XT - Graveur CD Philips - DD 15Go 2Mo(systeme) - ExcelStor 80Go 2Mo - Boitier NOVA btx TlphoneOrange SPV M700 Blanc ! Trop bien... |
|
|
|
|
|
#8 (permalink) |
|
GPB(Gentil Pilier de Bar)
![]() Date d'inscription: avril 2004
Localisation: Quelque part du ct de chez moi
Messages: 215
Pouvoir de rputation: 38
![]() |
Hello !
Voici un tuto sur la manipulation d'images en PHP avec la librairie graphique GD... Peut-tre cela pourra-t'-il t'aider Bienvenue sur PHP Dbutant
__________________
L'amour c'est comme les cartes, si t'as pas le bon partenaire, t'as intrt avoir une bonne main... |
|
|
|
|
|
#9 (permalink) |
|
Petit Deviendra Grand !
![]() Date d'inscription: juin 2005
Messages: 372
Pouvoir de rputation: 39
![]() |
J'ai dj le tuto du site du zero merci ! Je le trouve plus clair !
Mais bon n'ayant pas de bases sur le php il faut tout que je reprenne depuis le dbut... Et pour le moment je n'ai pas le temps ! C'est pour cela que je demande une ame charitable de m'aider... Enfin si vous ne pouvez pas tampis ! ![]()
__________________
Mon PC : AMD Athlon 64 3200+ - ASUS A8N5X - 2x512Mo(dual-chanel) - Lecteur DVD - Graveur DVD Benq - MSI Nvidia NX7600GS 256Mo PCIe - DD 80Go 8Mo - DD Maxtor 200Go 8Mo - Boitier Asus TA-211 Serveur : Athlon XP 1800+ - MSI KT4 - 512RAM - RADEON 9600XT - Graveur CD Philips - DD 15Go 2Mo(systeme) - ExcelStor 80Go 2Mo - Boitier NOVA btx TlphoneOrange SPV M700 Blanc ! Trop bien... |
|
|
|
![]() |
|
|
|||
|
||||
| Outils de la discussion | |
| Modes d'affichage | |
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Rponses | Dernier message |
| site de upload..... | MilesPower | Dveloppements | 1 | 18/10/2006 13h21 |
| Cration d'image puis restauration | popeye025 | Autres applications | 1 | 10/10/2006 10h45 |
| upload de fichier | ludoweb | Dveloppements | 1 | 29/01/2006 19h29 |
| Upload Entre Free Et Wanadoo ? | charly | Rseaux locaux | 4 | 17/03/2004 19h57 |
| Prob Upload | kevin0692 | Windows XP | 3 | 06/01/2004 21h30 |