แอตทริบิวต์ ViewBox: สร้างมาตราส่วนภาพ SVG เป็นขนาดของคอนเทนเนอร์
เผยแพร่แล้ว: 2023-02-13หากคุณเคยพยายามสร้างสเกลภาพ SVG ให้พอดีกับพื้นที่ใดพื้นที่หนึ่ง คุณอาจสังเกตเห็นว่ามันใช้งานไม่ได้เหมือนกับภาพทั่วไป หากคุณตั้งค่าความกว้างและความสูงของภาพ SVG เป็น "100%" ภาพจะถูกยืดให้พอดีกับคอนเทนเนอร์ สิ่งนี้อาจเป็นสิ่งที่ไม่พึงประสงค์ โดยเฉพาะอย่างยิ่งหากคุณกำลังพยายามสร้างการออกแบบที่ตอบสนอง วิธีหนึ่งในการปรับขนาดภาพ SVG ให้มีขนาดเท่าคอนเทนเนอร์คือตั้งค่าแอตทริบิวต์ viewBox แอตทริบิวต์ viewBox กำหนดระบบพิกัดสำหรับเนื้อหาของภาพ SVG ตามค่าเริ่มต้น ระบบพิกัดจะตั้งค่าเป็น 0 0 400 400 ซึ่งหมายความว่ามุมซ้ายบนของภาพอยู่ที่ 0,0 และมุมขวาล่างอยู่ที่ 400,400 หากคุณตั้งค่าแอตทริบิวต์ viewBox เป็น 0 0 100 100 รูปภาพจะถูกปรับขนาดเพื่อให้มุมซ้ายบนเป็น 0,0 และมุมล่างขวาเป็น 100,100 นอกจากนี้ยังสามารถใช้แอตทริบิวต์ viewBox เพื่อสร้างสเกลภาพ SVG ให้มีขนาดเท่ากับลูกของมัน ซึ่งจะมีประโยชน์หากคุณมีภาพ SVG ที่มีรายละเอียดเล็กๆ น้อยๆ จำนวนมาก ในการสร้างขนาดภาพ SVG ให้มีขนาดเท่าลูก คุณต้องตั้งค่าแอตทริบิวต์ viewBox เป็น 0 0 100 100 ซึ่งจะทำให้ขนาดภาพมุมบนซ้ายอยู่ที่ 0,0 และมุมล่างขวา อยู่ที่ 100,100.
บทความนี้จะแนะนำคุณเกี่ยวกับขั้นตอนการปรับขนาดกราฟิกแบบเวกเตอร์ (SVG) Amelia Bellamy-Royds ได้เขียนคำแนะนำที่น่าทึ่งในการปรับขนาด SVG แม้ว่าการปรับขนาดกราฟิกแรสเตอร์จะไม่ง่ายเหมือนการปรับขนาดกราฟิกแบบเวกเตอร์ แต่ก็มีศักยภาพที่จะน่าตื่นเต้น ผู้เริ่มต้นมักสับสนกับวิธีทำให้พฤติกรรมเป็นไปตามที่ต้องการ รูปภาพ Inaster มีอัตราส่วนภาพที่กำหนดไว้อย่างชัดเจน: อัตราส่วนของความกว้างต่อความสูง หากคุณบังคับให้เบราว์เซอร์วาดภาพแรสเตอร์ใน อัตราส่วนกว้างยาวที่แตก ต่างจากความสูงและความกว้างที่แท้จริง มันจะบิดเบือนสิ่งต่างๆ SVG แบบอินไลน์จะถูกวาดตามขนาดที่ระบุในโค้ด โดยไม่คำนึงถึงขนาดผ้าใบ
ViewBox ซึ่งเป็นส่วนสุดท้ายในคอมเพล็กซ์กราฟิกแบบเวกเตอร์ ช่วยให้คุณสร้างกราฟิกแบบเวกเตอร์ที่ใหญ่ขึ้นได้ องค์ประกอบนี้มี viewBox เป็นแอตทริบิวต์ ประกอบด้วยตัวเลขสี่ตัว: x, y, ความกว้าง และความสูง ซึ่งทั้งหมดสามารถคั่นด้วยช่องว่างหรือเครื่องหมายจุลภาค ที่มุมซ้ายของวิวพอร์ต ต้องระบุตัวแปรสองตัวนี้ ความสูงสามารถกำหนดเป็นจำนวนพิกัดและพื้นที่ไอคอนที่ต้องปรับขนาดให้ตรงกับความต้องการความสูงของผู้ใช้ ตามค่าเริ่มต้น รูปภาพจะไม่ถูกยืดหรือบิดเบี้ยวหากมีขนาดที่ไม่สอดคล้องกับอัตราส่วนภาพ นอกเหนือจาก คุณสมบัติ CSS ที่พอดีกับ วัตถุที่เพิ่มเข้ามาใหม่ ตอนนี้คุณสามารถใส่รูปภาพประเภทอื่นๆ ได้
หากคุณต้องการให้กราฟิกของคุณปรับขนาดเหมือนภาพแรสเตอร์ คุณยังสามารถปิดใช้งาน ภาพแรสเตอร์สามารถปรับลดหรือเพิ่มขนาดได้ตามความต้องการของผู้ใช้ SVG จะจัดการกับสิ่งนั้นได้อย่างไร กระบวนการนี้ยากขึ้นเรื่อย ๆ เมื่อเวลาผ่านไป การปรับขนาดภาพอัตโนมัติด้วยภาพใน >img> เป็นจุดเริ่มต้นที่ดี แต่คุณจะต้องแฮ็คภาพเล็กน้อยเพื่อเริ่มต้น หากต้องการควบคุมอัตราส่วนกว้างยาวขององค์ประกอบแบบไดนามิก คุณสามารถกำหนดค่าให้มีความสูงและระยะขอบที่สอดคล้องกับความสูงและระยะขอบขององค์ประกอบนั้นได้ ตราบเท่าที่ภาพมี viewBox ขนาดเริ่มต้น 300*150 จะถูกนำไปใช้ พฤติกรรมนี้ไม่ได้กำหนดไว้ในมาตรฐานใดๆ
หากคุณใช้เบราว์เซอร์ Blink หรือ Firefox ล่าสุด คุณสามารถปรับขนาดภาพให้พอดีกับช่องมองภาพได้ เบราว์เซอร์เหล่านี้จะใช้ขนาดเริ่มต้นโดยไม่คำนึงว่าคุณระบุความสูงหรือความกว้าง องค์ประกอบคอนเทนเนอร์เป็นวิธีการที่ตรงไปตรงมาที่สุดในการแทนที่องค์ประกอบใน SVG เป็นต้น ในกราฟิกแบบอินไลน์ /lt;svg> ความสูงอย่างเป็นทางการจะเป็นศูนย์ กราฟิกจะลดลงเหลืออะไรเลยหากตั้งค่า หากคุณต้องการยืดกราฟิก ตรวจสอบให้แน่ใจว่าครอบคลุมความกว้างทั้งหมดแล้ว จากนั้นขยายออกไปยังพื้นที่ขอบโดยตั้งค่าสัดส่วนภาพที่เหมาะสมอย่างระมัดระวัง เป็นไปไม่ได้ที่จะจำกัดแอตทริบิวต์ viewBox และการรักษา RatioAspect เป็นไปได้ที่จะสร้างส่วนต่างๆ ของมาตราส่วนกราฟิกของคุณสำหรับแต่ละองค์ประกอบที่ซ้อนกัน ซึ่งแต่ละองค์ประกอบมีแอตทริบิวต์การปรับมาตราส่วนของตัวเอง เป็นไปได้ที่จะสร้างกราฟิกส่วนหัวที่ขยายจนเต็มหน้าจอกว้างโดยไม่รบกวนการต้อนรับของคุณ
คุณจะปรับขนาดไฟล์ svg ได้อย่างไร? เมื่อเสร็จแล้ว เพียงลากและวางไฟล์ภาพ SVG ของคุณ หรือคลิกที่พื้นที่สีขาวเพื่อเลือกไฟล์ หลังจากที่คุณกำหนดการตั้งค่าการปรับขนาดแล้ว ให้คลิก ปุ่มปรับขนาด เพื่อทำให้ใหญ่ขึ้น หลังจากดำเนินการเสร็จสิ้น คุณจะสามารถดาวน์โหลดผลลัพธ์ของคุณได้
ViewBox ใช้เพื่อปรับขนาดภาพ SVG ตัวเลข “0 0 100 100” ระบุระบบพิกัดด้วย x=0, y=0, กว้าง=100 หน่วย, สูง=100 หน่วย โดยสรุป รูปสี่เหลี่ยมผืนผ้าที่มีความกว้างและความสูงของ SVG จะเติมความสูงและความกว้างของรูปภาพ และขนาดทั้งหมดจะถูกปรับขนาดเท่ากัน
เมื่อส่งออก SVG ตัวเลือก 'ตอบสนอง' จะไม่ถูกเลือกในส่วนตัวเลือกเพิ่มเติม เมื่อคุณเลือก Illustrator Artboard มันจะแสดงขนาดที่คุณระบุ ตรวจสอบให้แน่ใจว่าคุณเลือกหรือเน้นโลโก้ของคุณก่อนที่จะครอบตัดอาร์ตบอร์ด
ไฟล์ PNG มีข้อมูลในรูปแบบของเส้นทางและโหนดมากกว่าไฟล์ SVG แม้ว่าจะมีขนาดเท่ากัน แต่ ภาพ SVG ก็ไม่ดีเท่ากับภาพ PNG
ฉันจะทำให้ Svgs มีขนาดเท่ากันได้อย่างไร
ไม่มีคำตอบเดียวสำหรับคำถามนี้ เนื่องจากวิธีที่ดีที่สุดในการทำให้ SVG มีขนาดเท่ากันจะแตกต่างกันไปขึ้นอยู่กับแต่ละโครงการ อย่างไรก็ตาม เคล็ดลับบางประการเกี่ยวกับวิธีทำให้ SVG มีขนาดเท่ากัน ได้แก่ การใช้หน่วยวัดที่สอดคล้องกันและใช้แอตทริบิวต์ viewBox เดียวกันสำหรับ SVG ทั้งหมด
เนื่องจากเป็นรูปแบบเวกเตอร์ การปรับขนาดสามารถทำได้โดยไม่สูญเสียคุณภาพ อย่างไรก็ตาม ในขั้นตอนการเรนเดอร์ SVG สามารถสร้างความแตกต่างได้ โดยเฉพาะอย่างยิ่งเมื่อแสดงผลบนเพจแล้วขยายใหญ่ขึ้น หากคุณต้องการพิมพ์ สำเนา ห้องของคุณในอัตราส่วน 1:1 คุณจะต้องปรับขนาด SVG ของคุณเป็นหนึ่ง / worldToPrinterScaleFactor หากต้องการพิมพ์สำเนาขนาดครึ่งห้องของคุณ คุณต้องปรับขนาด (คูณ) SVG ของคุณด้วย 0.5 / worldToPrinterScaleFactor
Svg สามารถเป็นลูกของ Svg ได้หรือไม่?
ส่วนย่อยของเอกสาร SVG สามารถเป็นได้ทั้งเอกสารแบบสแตนด์อโลนหรือส่วนย่อยของเอกสารหลักที่ล้อมรอบด้วยองค์ประกอบ an'svg' แม้ว่าอิลิเมนต์ a'svg' จะเป็นตัวสืบทอดโดยตรงของอิลิเมนต์อื่นที่มีเนมสเปซที่ใช้ร่วมกัน แต่รูทของแฟรกเมนต์เอกสาร SVG ไม่ใช่ตัวของมันเอง จำเป็นต้องมีเนมสเปซที่มีชื่ออิลิเมนต์ใน sva
การสร้างเส้นทางด้วย D3
คะแนน var ถูกจัดเรียงในรูปแบบกริด ประกอบด้วยคำสามคำ: geo คุณสามารถชี้ได้โดยใช้ br() และ point รูปร่าง กลุ่ม *br จุดเท่ากับจุดอ้าง
ชื่อโปรแกรม ง. เปลี่ยนรูป (attr)
มีการระบุฟังก์ชันในคำจำกัดความต่อไปนี้
ซึ่งหมายความว่าหากการแปลง var loc = d (d3) หมายถึงการแปลงโฆษณา อาจเป็นตำแหน่งที่แน่นอน
เส้นทางเป็นผลมาจากสมการต่อไปนี้: loc + loc + M, loc + loc + L, loc + C, loc + C และ loc + L ความยาว; ***br> อาจเป็นได้; หรืออาจจะเป็น; หรืออาจจะเป็น; หรืออาจจะเป็น; หรืออาจจะเป็น; หรืออาจจะเป็น; หรือไม่ก็ได้