एक वर्ग SVG को सभी ICO आकार में कैसे बदलें?


24

मैंने इंकस्केप में एक आइकन तैयार किया है और इसे एक आईसीओ फ़ाइल में निर्यात करना चाहूंगा जिसमें सभी उचित प्रस्तावों (16x16, 32x32, ... 256x256 आदि) के लिए स्प्राइट शामिल होंगे। यह कैसे किया जा सकता है (फ़ोटोशॉप, कोरेलड्रॉव आदि जैसे विशाल और महंगे सॉफ़्टवेयर का उपयोग किए बिना)?


2
एक त्वरित खोज मुझे बताती है कि इंकस्केप से एक भी आईसीओ निर्यात करने का कोई तरीका नहीं है, लेकिन अतिरिक्त-मुफ्त सॉफ्टवेयर जैसे कि जीआईएमपी के साथ ऐसा करने के लिए बहुत सारे सुझाव हैं। क्या आपने उन विकल्पों की जाँच की? अगर उन्होंने आपके लिए काम नहीं किया, तो क्या आप बता सकते हैं कि क्यों नहीं?
usr2564301 19

@RadLexus जो मैंने कोशिश की है, वह कई ऑनलाइन टूल हैं और उन सभी को, जहां तक ​​मैं समझ सकता था, एकल आकार के ICOns बनाने का मतलब है।
इवान

5
तो आप जानना चाहते हैं कि कई आकार के ICO कैसे बनाएं? इस ढेर अतिप्रवाह उत्तर में विकल्प आज़माएं: stackoverflow.com/questions/4354617/… (फिर से, एक साधारण Google क्वेरी द्वारा पाया गया ...)।
usr2564301

1
एक इंकस्केप एक्सटेंशन है जो आईसीओ फ़ाइल के रूप में निर्यात करने के लिए लगता है , लेकिन मेरे पास इस समय कोशिश करने का कोई समय नहीं है कि यह काम करता है या नहीं।
पाओलो गिबलिनी

यदि आपको अपने प्रश्न का उत्तर देने के लिए नीचे कोई भी मिल गया है तो कृपया इसे स्वीकृत उत्तर के रूप में चिह्नित करें।
DᴀʀᴛʜVᴀᴅᴇʀ

जवाबों:


24

आप तुरंत ImageMagick का उपयोग कर सकते हैं :

convert -density 384 icon.svg -define icon:auto-resize icon.ico

3
वह घनत्व क्यों?
naught101 5

1
मुझे नहीं पता, मैंने इसे कहीं और से कॉपी-पेस्ट किया है।
हेल्टनबिकर

@ n-0101 यहाँ घनत्व ध्वज के लिए प्रलेखन है - हालाँकि, ऐसा लगता है कि यह एक अनावश्यक कदम है जब तक कि आप छवि आकार, डीपीआई और मध्यवर्ती छवि रेखापुंज के साथ बहुत विशिष्ट कुछ नहीं कर रहे हैं। imagemagick.org/script/command-line-options.php#density
CreationTribe

7
convert -background none icon.svg -define icon:auto-resize icon.icoपारदर्शी पृष्ठभूमि रखने के लिए उपयोग करें ।
रॉबर्ट ह्यूम

2
magick convert -background none icon.svg -define icon:auto-resize icon.icoमेरे लिए काम किया।
इंटोचो

15

एक कमांड लाइन समाधान:

1) अपने एसवीजी को इंकस्केप के साथ पीएनजी में निर्यात करें

2) ImageGagick के साथ इच्छित आकार में इस PNG छवि का आकार बदलें:

magick convert master.png -resize 16x16 16.png
magick convert master.png -resize 32x32 32.png
magick convert master.png -resize 48x48 48.png

3) ICO करने के लिए PNG छवियों कन्वर्ट:

magick convert 16.png 32.png 48.png icon.ico

4) सुनिश्चित करें कि आपके ICO में सब कुछ है:

identify icon.ico
icon.ico[1] ICO 16x16 16x16+0+0 32-bit sRGB 21.2KB 0.000u 0:00.000
icon.ico[0] ICO 32x32 32x32+0+0 32-bit sRGB 21.2KB 0.000u 0:00.000
icon.ico[0] ICO 48x48 48x48+0+0 32-bit sRGB 21.2KB 0.000u 0:00.000

कार्य को सरल बनाने के लिए आप एक साधारण बैच या शेल फ़ाइल का भी उपयोग कर सकते हैं।
पाओलो गिबेलिनी

3
क्या यह बेहतर नहीं होगा (भले ही थोड़ा और अधिक जटिल) एसवीजी से सीधे कई पीएनजी आकार का निर्यात करने के बजाय पहले से ही पीएसजी को फिर से आकार देने के बजाय?
हेलटनबिकर

1
बस किसी और के उत्सुक होने पर, "..." शाब्दिक नहीं है। यह favicon.ico फ़ाइल में cram करने के लिए अन्य png फ़ाइल आकारों का प्रतिनिधित्व करता है।
Nostalg.io

@ Nostalg.io अच्छी टिप्पणी, धन्यवाद! मैंने उत्तर संपादित किया।
फिलिप्पे_ बी

5

बैश संस्करण ...

#!/bin/bash

set -ex

svg=$1

size=(16 32 24 48 72 96 144 152 192 196)

echo Making bitmaps from your svg...

for i in ${size[@]}; do
  inkscape $svg --export-png="favicon-$i.png" -w$i -h$i --without-gui
done

echo Compressing...

## Replace with your favorite (e.g. pngquant)
# optipng -o7 favicon-*.png
pngquant -f --ext .png favicon-*.png --posterize 4 --speed 1

echo Converting to favicon.ico...

convert $(ls -v favicon-*.png) favicon.ico

## Clean-up maybe?
# rm favicon-*.png

echo Done

उपयोग: ./favicon.sh your-square-svg-file.svg

आवश्यकता है: अपने पैकेज मैनेजर से इंक्सस्केप इमेजमेगिक ऑप्टिफ़ (वैकल्पिक)।

Win10 और Inkscape साथ नहीं मिल रहे थे इसलिए मुझे बैश शेल के लिए इसे फिर से बनाना आसान लगा। यह लिनक्स के लिए विंडोज सबसिस्टम के भीतर परीक्षण किया गया था लेकिन इसे मैक पर भी काम करना चाहिए।

इस संदर्भ का उपयोग मैंने उन आकारों को चुनने के लिए किया है जिनकी देखभाल: https://github.com/audreyr/favicon-cheat-sheetsizeअपनी विशिष्ट आवश्यकताओं के लिए सरणी को समायोजित करें ।


4

मैं इस दृष्टिकोण का सुझाव दूंगा:

1) एसवीजी को किसी भी आवश्यक आकार में निर्यात करने के लिए एक स्क्रिप्ट बनाएं। मैंने एंड्रॉइड आइकन बनाने में मदद करने के लिए इस .bat स्क्रिप्ट को कोडित किया है

@echo off
set file="%~f1"
set path=%~dp1
set inkscape="C:\Program Files\Inkscape\inkscape.exe"

echo Le icone saranno salvate in %path%
echo Produzione icone applicative

echo %file% --export-png="%path%/ic32.png" -w32 -h32 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic48.png" -w48 -h48 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic72.png" -w72 -h72 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic96.png" -w96 -h96 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic144.png" -w144 -h144 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic192.png" -w192 -h192 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic512.png" -w512 -h512 > %~dp1/commands.txt
%inkscape% --shell < %~dp1/commands.txt
erase "%~dp1/commands.txt"

echo Procedura terminata

नोट :

  • परिभाषित % इंकस्केप % var आपके Inkscape इंस्टॉल पथ के लिए पर्याप्त होना चाहिए
  • स्क्रिप्ट ऑकस्केप प्रक्रिया के बेहतर प्रबंधन के लिए एक अस्थायी फ़ाइल के लिए सभी निर्यात आदेशों को प्रतिध्वनित करती है। "शेल" क्लीम परम आदेश प्रति आवृत्ति के बजाय एकल उदाहरण का उपयोग करके अधिक आदेशों को स्वीकार करता है।

इस पैरामीटर के साथ, इंकस्केप एक इंटरैक्टिव कमांड लाइन शेल मोड में प्रवेश करेगा। इस मोड में, आप प्रॉम्प्ट पर कमांड टाइप करते हैं और इनस्कैप उन्हें निष्पादित करता है, बिना आपको प्रत्येक कमांड के लिए इंकस्केप की एक नई कॉपी चलाना होगा। यह सुविधा पटकथा और सर्वर के उपयोग के लिए ज्यादातर उपयोगी है: इसमें कोई नई क्षमता नहीं है, लेकिन आपको किसी भी स्क्रिप्ट की गति और मेमोरी आवश्यकताओं में सुधार करने की अनुमति देता है जो कमांड लाइन कार्यों (जैसे निर्यात या रूपांतरण) को करने के लिए बार-बार इंकस्केप को कॉल करता है। शेल मोड में प्रत्येक कमांड पूरी तरह से मान्य इंक्सस्केप कमांड लाइन होनी चाहिए, लेकिन इनक्सस्केप प्रोग्राम के नाम के बिना, उदाहरण के लिए "file.svg --export-pdf = file.pdf"। ( इंक्सस्केप मैनुअल देखें )

2) उपरोक्त स्क्रिप्ट में दलीप-बी उत्तर में परिवर्तित सिंटैक्स जोड़ें, जो सभी उत्पन्न PNG को एक ICO फ़ाइल में विलय करता है

3) वैकल्पिक रूप से, सभी निर्यात किए गए पीएनजी को हटा दें क्योंकि उन्हें अधिक आवश्यकता नहीं है


1

यह वेबसाइट फ़ेविकॉन पीढ़ी के लिए है, क्योंकि इसमें अधिकांश उपकरणों (विंडोज, मैकओएस, एंड्रॉइड, आईओएस) के लिए ऐड टू होमस्क्रीन के आइकन शामिल हैं। https://realfavicongenerator.net/

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