मैं फ़ोटोशॉप दस्तावेज़ को ग्रिड में कैसे विभाजित करूं?


2

अगर मेरे पास एक फ़ोटोशॉप दस्तावेज़ है जिसमें उदाहरण के लिए एक छवि है। मैं इसे ग्रिड में कैसे तोड़ सकता हूं? ऐसा करने के लिए: - एक आयत का चयन करें - नया लेयर वाया कट - अगली आयत पर लंबवत दोहराएं?

ऐसी कोई भी स्क्रिप्ट / प्लगइन्स जो स्वचालित / उसे मानकीकृत करें?

जवाबों:


4

एकमात्र तरीका मैंने ऐसा किया है कि गाइड के साथ ग्रिड को लेआउट करना है, फिर स्लाइस टूल का उपयोग करके छवि को स्लाइस करें। इससे आपको छवि को कई अलग टुकड़ों में तोड़ने की अनुमति मिल सकती है। स्लाइस टूल का उपयोग करने के बाद आप वेब के लिए सेव कर सकते हैं, और केवल स्लाइस को निर्यात कर सकते हैं, प्रत्येक को एक अलग छवि फ़ाइल के रूप में।


धन्यवाद, लेकिन मुझे डर है कि यह लंबे समय से घुमावदार है, मैं उस के लिए आलसी हूं :)
जॉर्ज प्रोफेंज़ा

2

सभी अच्छे जवाब, योगदान के लिए धन्यवाद।

जैसा कि मैंने कहा, मैं सोच रहा था कि क्या वहाँ फ़ोटोशॉप के लिए कुछ था।

प्रलेखन उद्देश्यों के लिए यहाँ एक छोटी स्क्रिप्ट है जो मैंने लिखी है:

var doc  = app.activeDocument;
var arranger = makeDialog();

arranger .arrange.onClick = function(){
    if(isNaN(parseInt(arranger.w.text)) || isNaN(parseInt(arranger.h.text)) || isNaN(parseInt(arranger.c.text)) || isNaN(parseInt(arranger.r.text))){
        alert('Yo! Can you feed \' dis dialog some integer numbers ?\n For Real!');
    }else{
        sliceLayer(parseInt(arranger.w.text),parseInt(arranger.h.text),parseInt(arranger.r.text),parseInt(arranger.c.text));
    }
    arranger.close();
}

arranger.show();

function sliceLayer(w,h,r,c){
    var hw = w * 0.5;
    var hh = h * 0.5;
    var l0 = doc.activeLayer;
    for(var j = 0 ; j < r ; j++){
        for(var i = 0 ; i < c; i++){
            var x = i * w; //edited
            var y = j * h; //here
            //select
            doc.selection.select([[x,y],[x+w,y],[x+w,y+h],[x,y+h]]);
            //new layer via cut
            doc.selection.cut();
            var layer  = doc.artLayers.add();
            doc.paste();
            //move
            //$.writeln('translate x: '+(y)+', y: '+(x));
            // move layer with relative coordinates
            // layer.translate(y,x); 
            // move layer with absolute coordinates
            MoveLayerTo( layer, x, y );
            doc.activeLayer = l0;
        }
    }
    l0.remove();//remove original layer(now empty)
}


function makeDialog(){
        var dialog = new Window('dialog','Slice and Dice');
        dialog.frameLocation = [300,300];
        dialog.w = dialog.add('edittext',undefined,'Selection width');
        dialog.w.prefferedSize = [200,50];
        dialog.h = dialog.add('edittext',undefined,'Selection height');
        dialog.h.prefferedSize = [200,50];
        dialog.c = dialog.add('edittext',undefined,'Grid Columns(V sections)');
        dialog.c.prefferedSize = [200,50];
        dialog.r = dialog.add('edittext',undefined,'Grid Rows(H sections)');
        dialog.r.prefferedSize = [200,50];
        dialog.arrange = dialog.add('button',undefined,'Chop Chop');
        return dialog;
}

//******************************************
// MOVE LAYER TO
// Author: Max Kielland
//
// Moves layer fLayer to the absolute
// position fX,fY. The unit of fX and fY are
// the same as the ruler setting. 

function MoveLayerTo(fLayer,fX,fY) {

    var Position = fLayer.bounds;
    Position[0] = fX - Position[0];
    Position[1] = fY - Position[1];

    fLayer.translate(-Position[0],-Position[1]);
}

यदि आप इसे .jsx फ़ाइल के रूप में फ़ोटोशॉप / प्रीसेट / लिपियों में सहेजते हैं, तो आपको फ़ाइल मेनू में लिपियों के माध्यम से इसे एक्सेस करने में सक्षम होना चाहिए। आप अपने कंप्यूटर पर कहीं भी स्क्रिप्ट के साथ फ़ाइल -> लिपियों -> ब्राउज़ ... का उपयोग कर सकते हैं।

यह चार चीजें मांगेगा:

  • चयन की चौड़ाई - आप ग्रिड में प्रत्येक ब्लॉक को कितना चौड़ा चाहते हैं
  • चयन ऊंचाई - आप ग्रिड के प्रत्येक ब्लॉक को कितना लंबा चाहते हैं
  • ग्रिड कॉलम (V सेक्शन) - एक बार विभाजित होने के बाद कितने कॉलम होने चाहिए
  • ग्रिड पंक्तियाँ (एच अनुभाग) - एक बार विभाजित होने के बाद कितनी पंक्तियाँ होनी चाहिए

यदि आपको दस्तावेज़ के बारे में कोई त्रुटि मिलती है, जो आपको नहीं मिल रही है, तो आपको इसे चलाने से पहले एक छवि को खोलने की आवश्यकता है।

इस JSX दृष्टिकोण के साथ समस्या यह है, यह बड़े उपखंडों (100x100) के लिए थोड़ा धीमा है।

मुझे लगता है कि यह MATLAB / फ़ोटोशॉप संचार के साथ प्रयास करने के लिए तेज़ होगा, लेकिन मैं अभी के लिए छोड़ दूँगा।

CopyPixels () का उपयोग करके क्रिया 3 में समान लक्ष्य प्राप्त किया और यह बहुत तेज़ है।


1

यह एक प्रश्न के समान है जिसका मैंने यहां उत्तर दिया था: मैंने एक मुफ्त उपकरण की सिफारिश की थी जो आपको ऐसा करने की अनुमति देता है, आप png निर्यात करते हैं, वहां png लोड करते हैं और बटन दबाते हैं ...।

अन्य soutions प्रस्तावित थे, भी।

छवि संपादक जो कई, अलग-अलग, एक साथ फसल चयनों को सहेजने की अनुमति देता है? (मुफ्त और सशुल्क कार्यक्रमों दोनों की तलाश)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.