]> git.mxchange.org Git - friendica.git/commitdiff
png support: update database.sql, fix some typos, fix tinymce image browser
authorFabio Comuni <fabrix.xm@gmail.com>
Thu, 7 Jun 2012 18:17:31 +0000 (20:17 +0200)
committerFabio Comuni <fabrix.xm@gmail.com>
Thu, 7 Jun 2012 18:17:31 +0000 (20:17 +0200)
database.sql
include/Photo.php
mod/fbrowser.php
mod/photos.php
mod/profile_photo.php
mod/wall_upload.php

index c1d1b27e4ee865213533879dc5b5482933e1a550..53dc0c5b215c77248563c9cb6246cba62ff646d8 100644 (file)
@@ -745,6 +745,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
   `desc` text NOT NULL,
   `album` char(255) NOT NULL,
   `filename` char(255) NOT NULL,
+  `type` CHAR(128) NOT NULL DEFAULT 'image/jpeg',
   `height` smallint(6) NOT NULL,
   `width` smallint(6) NOT NULL,
   `data` mediumblob NOT NULL,
index ffefc37eca34e0cc959662b04b971fad827c4104..f769a70a6ecb4a5f664d83c26eb5e69728f9c4dd 100644 (file)
@@ -105,9 +105,9 @@ class Photo {
 
 
                $dest = imagecreatetruecolor( $dest_width, $dest_height );
-               imagealphablending($dest->image, false);
+               imagealphablending($dest, false);
                imagesavealpha($dest, true);
-               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127));; // fill with alpha
+               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
                imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
                if($this->image)
                        imagedestroy($this->image);
@@ -164,9 +164,9 @@ class Photo {
 
 
                $dest = imagecreatetruecolor( $dest_width, $dest_height );
-               imagealphablending($dest->image, false);
+               imagealphablending($dest, false);
                imagesavealpha($dest, true);
-               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127));; // fill with alpha
+               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
                imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
                if($this->image)
                        imagedestroy($this->image);
@@ -181,9 +181,9 @@ class Photo {
        public function scaleImageSquare($dim) {
 
                $dest = imagecreatetruecolor( $dim, $dim );
-               imagealphablending($dest->image, false);
+               imagealphablending($dest, false);
                imagesavealpha($dest, true);
-               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127));; // fill with alpha
+               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
                imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
                if($this->image)
                        imagedestroy($this->image);
@@ -195,9 +195,9 @@ class Photo {
 
        public function cropImage($max,$x,$y,$w,$h) {
                $dest = imagecreatetruecolor( $max, $max );
-               imagealphablending($dest->image, false);
+               imagealphablending($dest, false);
                imagesavealpha($dest, true);
-               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127));; // fill with alpha
+               if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
                imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
                if($this->image)
                        imagedestroy($this->image);
@@ -295,6 +295,7 @@ class Photo {
  * @arg $fromcurl boolean Check Content-Type header from curl request
  */
 function guess_image_type($filename, $fromcurl=false) {
+    logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG);
        $type = null;
        if ($fromcurl) {
                $a = get_app(); 
@@ -310,12 +311,13 @@ function guess_image_type($filename, $fromcurl=false) {
        if (is_null($type)){
                $ext = pathinfo($filename, PATHINFO_EXTENSION);
                $types = Photo::supportedTypes();
+               $type = "image/jpeg";
                foreach ($types as $m=>$e){
-                       if ($ext==$e) return $m;
+                       if ($ext==$e) $type = $m;
                }
-               $type = "image/jpeg";
-       }
 
+       }
+    logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG);
        return $type;
        
 }
index 66ff9252ebbcf77f1e2f895b59d235c288b86b32..3f034226e15084e8947d3ca7db4409782041b3ef 100644 (file)
@@ -4,7 +4,9 @@
  * @subpackage FileBrowser
  * @author             Fabio Comuni <fabrixxm@kirgroup.com>
  */
+
+require_once('include/Photo.php');
+
 /**
  * @param App $a
  */
@@ -43,14 +45,22 @@ function fbrowser_content($a){
                                $path[]=array($a->get_baseurl()."/fbrowser/image/".$a->argv[2]."/", $album);
                        }
                                
-                       $r = q("SELECT `resource-id`, `id`, `filename`, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc`  
+                       $r = q("SELECT `resource-id`, `id`, `filename`, type, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc`  
                                        FROM `photo` WHERE `uid` = %d $sql_extra
                                        GROUP BY `resource-id` $sql_extra2",
                                intval(local_user())                                    
                        );
                        
-                       
-                       function files1($rr){ global $a; return array( $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.jpg', template_escape($rr['filename']), $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.jpg');  }
+                       function files1($rr){ 
+                               global $a;
+                               $types = Photo::supportedTypes();
+                               $ext = $types[$rr['type']];
+                               return array( 
+                                       $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.' .$ext, 
+                                       template_escape($rr['filename']), 
+                                       $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.'. $ext
+                               );
+                       }
                        $files = array_map("files1", $r);
                        
                        $tpl = get_markup_template("filebrowser.tpl");
index 0723535871c4ff2024c0cfa03104adf7846fe06e..efeab8fa3c3ab87b164b9f4aa08e4a0debe00b4c 100644 (file)
@@ -682,9 +682,9 @@ function photos_post(&$a) {
                $filesize   = intval($_FILES['userfile']['size']);
                $type       = $_FILES['userfile']['type'];
        }
-       
+       if ($type=="") $type=guess_image_type($filename);
 
-       logger('photos: upload: received file: ' . $filename . ' as ' . $src . ' '. $type . ' ' . $filesize . ' bytes', LOGGER_DEBUG);
+       logger('photos: upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG);
 
        $maximagesize = get_config('system','maximagesize');
 
index 2817f39423cf8213da8a7625f0e10884a000f471..e44707f9bba8396da0b69e399d6622c137f32138 100644 (file)
@@ -109,7 +109,8 @@ function profile_photo_post(&$a) {
        $filename = basename($_FILES['userfile']['name']);
        $filesize = intval($_FILES['userfile']['size']);
        $filetype = $_FILES['userfile']['type'];
-
+    if ($filetype=="") $filetype=guess_image_type($filename);
+    
        $maximagesize = get_config('system','maximagesize');
 
        if(($maximagesize) && ($filesize > $maximagesize)) {
index 20666e0ef45048215d24935ba4bad7a5fa67789a..4b81f8d1c209564581653bda00178c4035f37c48 100644 (file)
@@ -69,7 +69,8 @@ function wall_upload_post(&$a) {
                $filesize = intval($_FILES['media']['size']);
                $filetype = $_FILES['media']['type'];
        }
-
+       
+    if ($filetype=="") $filetype=guess_image_type($filename);
        $maximagesize = get_config('system','maximagesize');
 
        if(($maximagesize) && ($filesize > $maximagesize)) {