GISarabia.org
PostGIS › الدليل الرسمي › 11. مرجع الرستر › 11.7. دوال تحرير الرستر
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_Resize

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

ST_Resize — تغيّر حجم رستر إلى عرض/ارتفاع جديد

المختصر

raster ST_Resize(raster rast, integer width, integer height, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Resize(raster rast, double precision percentwidth, double precision percentheight, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Resize(raster rast, text width, text height, text algorithm=NearestNeighbor, double precision maxerr=0.125);

الوصف

تغيّر حجم رستر إلى عرض/ارتفاع جديد. يمكن تحديد العرض/الارتفاع الجديد بعدد دقيق من البكسلات أو بنسبة مئوية من عرض/ارتفاع الرستر. سيكون امتداد الرستر الجديد مماثلًا لامتداد الرستر المُقدَّم.

تُحسب قيم البكسلات الجديدة باستخدام خوارزمية إعادة التشكيل NearestNeighbor (بالتهجئة الإنجليزية أو الأمريكية) أو Bilinear أو Cubic أو CubicSpline أو Lanczos. القيمة الافتراضية NearestNeighbor وهي الأسرع لكنها تُنتج أسوأ استيفاء.

يتوقع الشكل 1 العرض/الارتفاع الفعلي للرستر الناتج.

يتوقع الشكل 2 قيمًا عشرية بين الصفر (0) والواحد (1) تشير إلى النسبة المئوية من عرض/ارتفاع الرستر المُدخل.

يقبل الشكل 3 إما العرض/الارتفاع الفعلي للرستر الناتج أو نسبة مئوية نصية («20%») تشير إلى النسبة المئوية من عرض/ارتفاع الرستر المُدخل.

متاحة منذ: 2.1.0 تتطلب GDAL 1.6.1+

أمثلة

WITH foo AS(
SELECT
    1 AS rid,
    ST_Resize(
        ST_AddBand(
            ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)
            , 1, '8BUI', 255, 0
        )
    , '50%', '500') AS rast
UNION ALL
SELECT
    2 AS rid,
    ST_Resize(
        ST_AddBand(
            ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)
            , 1, '8BUI', 255, 0
        )
    , 500, 100) AS rast
UNION ALL
SELECT
    3 AS rid,
    ST_Resize(
        ST_AddBand(
            ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)
            , 1, '8BUI', 255, 0
        )
    , 0.25, 0.9) AS rast
), bar AS (
    SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo
)
SELECT rid, (meta).* FROM bar

 rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy | srid | numbands
-----+------------+------------+-------+--------+--------+--------+-------+-------+------+----------
   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 |     0 |    0 |        1
   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 |     0 |    0 |        1
   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 |     0 |    0 |        1
(3 rows)