السلام عليكم
لدي سكربت معرض صور
وهو يعمل بكفاءة وبه العديد من المزايا
ولكن هناك مشكلة واحده حيث يمكن تحميل الصور من ملف مضغوط مباشرة داخل السكربت
ولكن المشكله ان السكربت لا يسمح بتحميل الصور ذات المقاسات غير القياسية او بمعنى اخر اي صورة اقل من 800 في 600
حاولت حل المشكلة الى ان وصلت للملف الذي يتحكم في هذا الاختيار
وهو يعتمد على جلب معلومات الصورة ثم مقارنتها بعناصر مصفوفة موضوع بها المقاسات القياسية
وبالفعل نجحت في اضافة مقاسات جديدة كعنصر اضافي في المصفوفة
ولكن ليس من المنطقى اضافة كل المقاسات الاخرى الي لا تتفق مع المقاسات القياسية
وهذا هو الكود
سوف تلاحظ اخر مقاس 212 في 433 وهو المقاس الذي اضفتهكود PHP:function check_allowed_size ( $allowed_sizes, $file, $type = 'w' )
{
$details = getimagesize ( $file );
$heights = array ();
$widths = array ();
foreach ( $allowed_sizes as $key => $value )
{
foreach ( $value as $height => $width )
{
$heights [] = $height;
$widths [] = $width;
}
}
return ( $type == 'w' ) ? ( ( isset ( $details [ 0 ] ) && in_array ( $details [ 0 ], array_values ( $widths ) ) ) ? TRUE : FALSE ) : ( ( isset ( $details [ 1 ] ) && in_array ( $details [ 1 ], array_values ( $heights ) ) ) ? TRUE : FALSE );
}
function check_wide ( $file )
{
$details = getimagesize ( $file );
$heights = array ();
$widths = array ();
foreach ( get_sizes () as $height => $width )
{
if ( isset ( $details [ 0 ] ) && isset ( $details [ 1 ] ) && $details [ 0 ] == $width && $details [ 1 ] == $height && round ( $width / $height ) == 2 )
{
return TRUE;
}
}
return FALSE;
}
function get_sizes ()
{
$sizes = array
(
1 => array ( 1200 => 1600 ),
2 => array ( 768 => 1024 ),
3 => array ( 864 => 1152 ),
4 => array ( 1024 => 1280 ),
5 => array ( 1440 => 1920 ),
6 => array ( 1920 => 2560 ),
7 => array ( 800 => 1280 ),
8 => array ( 900 => 1440 ),
9 => array ( 1050 => 1680 ),
10 => array ( 1200 => 1920 ),
11 => array ( 1600 => 2560 ),
12 => array ( 960 => 1280 ),
13 => array ( 600 => 800 ),
14 => array ( 427 => 212 ),
15 => array ( 300 => 433 )
);
return $sizes;
}
ولكن كيف يمكنني الخروج من هذه الطريقة بحيث يقبل السكربت تحميل اي مقاس للصورة
ولا يكون قاصرا فقط على هذه المقاسات


رد مع اقتباس
