Index: /trunk/admin/include/functions_upload.inc.php
===================================================================
--- /trunk/admin/include/functions_upload.inc.php	(revision 10156)
+++ /trunk/admin/include/functions_upload.inc.php	(revision 10157)
@@ -348,4 +348,6 @@
       $update['has_high'] = 'true';
       $update['high_filesize'] = $high_infos['filesize'];
+      $update['high_width'] = $high_infos['width'];
+      $update['high_height'] = $high_infos['height'];
     }
     else
@@ -353,4 +355,6 @@
       $update['has_high'] = 'false';
       $update['high_filesize'] = null;
+      $update['high_width'] = null;
+      $update['high_height'] = null;
     }
 
@@ -388,4 +392,6 @@
       $insert['has_high'] = 'true';
       $insert['high_filesize'] = $high_infos['filesize'];
+      $insert['high_width'] = $high_infos['width'];
+      $insert['high_height'] = $high_infos['height'];
     }
 
Index: /trunk/admin/site_reader_local.php
===================================================================
--- /trunk/admin/site_reader_local.php	(revision 10156)
+++ /trunk/admin/site_reader_local.php	(revision 10157)
@@ -155,5 +155,5 @@
   global $conf;
 
-  $update_fields = array('filesize', 'width', 'height', 'high_filesize');
+  $update_fields = array('filesize', 'width', 'height', 'high_filesize', 'high_width', 'high_height');
 
   if ($conf['use_exif'])
@@ -200,6 +200,11 @@
   {
     $high_file = dirname($file).'/pwg_high/'.basename($file);
-
     $data['high_filesize'] = floor(filesize($high_file)/1024);
+    
+    if ($high_size = @getimagesize($high_file))
+    {
+      $data['high_width'] = $high_size[0];
+      $data['high_height'] = $high_size[1];
+    }
   }
 
Index: /trunk/admin/site_reader_remote.php
===================================================================
--- /trunk/admin/site_reader_remote.php	(revision 10156)
+++ /trunk/admin/site_reader_remote.php	(revision 10157)
@@ -44,5 +44,5 @@
     );
   $this->metadata_attributes = array(
-    'filesize', 'width', 'height', 'high_filesize'
+    'filesize', 'width', 'height', 'high_filesize', 'high_width', 'high_height',
     );
 
Index: /trunk/install/db/100-database.php
===================================================================
--- /trunk/install/db/100-database.php	(revision 10157)
+++ /trunk/install/db/100-database.php	(revision 10157)
@@ -0,0 +1,52 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery                                    |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program 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      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+  die('Hacking attempt!');
+}
+
+$upgrade_description = 'add high_width and high_height fields into IMAGES_TABLE';
+
+if ('mysql' == $conf['dblayer'])
+{
+  $query = 'ALTER TABLE '.IMAGES_TABLE.' 
+    ADD COLUMN `high_width` smallint(9) unsigned default NULL, 
+    ADD COLUMN `high_height` smallint(9) unsigned default NULL;';
+}
+
+if (in_array($conf['dblayer'], array('pgsql', 'sqlite', 'pdo-sqlite')))
+{
+  $query = 'ALTER TABLE '.IMAGES_TABLE.' 
+    ADD COLUMN "high_width" INTEGER, 
+    ADD COLUMN "high_height" INTEGER;';
+}
+
+pwg_query($query);
+
+echo
+"\n"
+. $upgrade_description
+."\n"
+;
+?>
Index: /trunk/install/piwigo_structure-mysql.sql
===================================================================
--- /trunk/install/piwigo_structure-mysql.sql	(revision 10156)
+++ /trunk/install/piwigo_structure-mysql.sql	(revision 10157)
@@ -193,4 +193,6 @@
   `storage_category_id` smallint(5) unsigned default NULL,
   `high_filesize` mediumint(9) unsigned default NULL,
+  `high_width` smallint(9) unsigned default NULL,
+  `high_height` smallint(9) unsigned default NULL,
   `level` tinyint unsigned NOT NULL default '0',
   `md5sum` char(32) default NULL,
Index: /trunk/install/piwigo_structure-pdo-sqlite.sql
===================================================================
--- /trunk/install/piwigo_structure-pdo-sqlite.sql	(revision 10156)
+++ /trunk/install/piwigo_structure-pdo-sqlite.sql	(revision 10157)
@@ -189,4 +189,6 @@
   "storage_category_id" INTEGER,
   "high_filesize" INTEGER,
+  "high_width" INTEGER,
+  "high_height" INTEGER,
   "level" INTEGER default 0 NOT NULL,
   "md5sum" CHAR(32),
Index: /trunk/install/piwigo_structure-pgsql.sql
===================================================================
--- /trunk/install/piwigo_structure-pgsql.sql	(revision 10156)
+++ /trunk/install/piwigo_structure-pgsql.sql	(revision 10157)
@@ -233,4 +233,6 @@
   "storage_category_id" INTEGER,
   "high_filesize" INTEGER,
+  "high_width" INTEGER,
+  "high_height" INTEGER,
   "level" INTEGER default 0 NOT NULL,
   "md5sum" CHAR(32),
Index: /trunk/install/piwigo_structure-sqlite.sql
===================================================================
--- /trunk/install/piwigo_structure-sqlite.sql	(revision 10156)
+++ /trunk/install/piwigo_structure-sqlite.sql	(revision 10157)
@@ -189,4 +189,6 @@
   "storage_category_id" INTEGER,
   "high_filesize" INTEGER,
+  "high_width" INTEGER,
+  "high_height" INTEGER,
   "level" INTEGER default 0 NOT NULL,
   "md5sum" CHAR(32),
Index: /trunk/picture.php
===================================================================
--- /trunk/picture.php	(revision 10156)
+++ /trunk/picture.php	(revision 10157)
@@ -920,4 +920,29 @@
 }
 
+// hd size in pixels
+if ($picture['current']['is_picture'] AND $picture['current']['has_high'])
+{
+  if (!empty($picture['current']['high_width']))
+  {
+    $infos['INFO_DIMENSIONS'] = $picture['current']['high_width'].'*'.$picture['current']['high_height'];
+  }
+  else
+  {
+    $hi_size = @getimagesize($hi_url);
+    if ($hi_size !== false)
+    {
+      pwg_query('
+        UPDATE ' . IMAGES_TABLE . '
+        SET 
+          high_width = \'' . $hi_size[0].'\',
+          high_height = \''.$hi_size[1] .'\'
+        WHERE id = ' . $picture['current']['id'] . ';
+      ');
+      
+      $infos['INFO_DIMENSIONS'] = $hi_size[0].'*'.$hi_size[1];
+    }
+  }
+}
+
 // filesize
 if (!empty($picture['current']['filesize']))
@@ -925,4 +950,11 @@
   $infos['INFO_FILESIZE'] =
     sprintf(l10n('%d Kb'), $picture['current']['filesize']);
+}
+
+// hd filesize
+if ($picture['current']['has_high'] and !empty($picture['current']['high_filesize']))
+{
+  $infos['INFO_FILESIZE'] =
+    sprintf(l10n('%d Kb'), $picture['current']['high_filesize']);
 }
 
Index: /trunk/tools/create_listing_file.php
===================================================================
--- /trunk/tools/create_listing_file.php	(revision 10156)
+++ /trunk/tools/create_listing_file.php	(revision 10157)
@@ -739,4 +739,10 @@
         $high_file = $file_dir.'/'.$conf['high'].'/'.$file_base;
         $element['high_filesize'] = floor(filesize($high_file) / 1024);
+        
+        if ($high_size = @getimagesize($high_file))
+        {
+          $element['high_width'] = $high_size[0];
+          $element['high_height'] = $high_size[1];
+        }
       }
       
