मैं एक .ico फ़ाइल में कई आकार कैसे एम्बेड करूं?


17

मैंने ऐसे .ico आइकन देखे हैं जिनमें कई आकारों के लिए अलग-अलग चित्र हैं, जैसे। 16x16, 32x32, 48x48, 128x128, 256x256। विंडोज पर, मैं एक आइकन फाइल कैसे बना सकता हूं जो इस तरह से कई आकारों का समर्थन करती है, बशर्ते मेरे पास प्रत्येक आकार के लिए .ico फाइलें हों? कृपया ध्यान दें कि मैं 200+ फ़ाइलों के लिए ऐसा करने की उम्मीद कर रहा हूं, इसलिए इसे cmd से करना आदर्श होगा।

जवाबों:


29

ImageMagick (विंडोज / मैक / लिनक्स) में एक कमांड-लाइन टूल होता है, जिसे convertकई चीजों के लिए इस्तेमाल किया जा सकता है, जिसमें एक आइकन में कई इमेज पैक करना शामिल है:

convert 16.png 32.png 48.png 128.png 256.png -colors 256 icon.ico

पिछली कमांड 5 पीएनजी चित्र लेती है, और उन्हें एक एकल .ico फ़ाइल में जोड़ती है।

अन्य उत्तरों के विपरीत, इस पद्धति का उपयोग आसानी से कई स्क्रिप्ट फ़ाइलों को स्वचालित रूप से उत्पन्न करने के लिए बैच स्क्रिप्ट में किया जा सकता है। मेरी एक परियोजना में, मेरे पास एक एकल वेक्टर छवि (एसवीजी) है, और एक आइकन कंटेनर बनाने के लिए विभिन्न आकारों के पीएनजी उत्पन्न करने के लिए इंकस्केप का उपयोग किया जाता convertहै। यह एक छोटा उदाहरण है (एक बाश स्क्रिप्ट में):

#!/bin/bash
for size in 16 32 48 128 256; do
    inkscape -z -e $size.png -w $size -h $size icon.svg >/dev/null 2>/dev/null
done
convert 16.png 32.png 48.png 128.png 256.png -colors 256 icon.ico

1
यार, मुझे ऐसा लगता है कि मैं इमेजमैजिक का convertहर बार उपयोग करने का एक नया तरीका सीखता हूं। जवाब के लिए धन्यवाद!
सुदीपति

आप इसके विपरीत कैसे करते हैं? .icoकई पीएनजी में परिवर्तित करें , इसमें शामिल आकारों के आधार पर?
फ्लिम

2
@Flimm convert favicon.ico favicon.pngउत्पन्न करता है favicon-0.png, favicon-1.pngआदि फ्रेम में हर आइकन के लिए। यदि आप छवि के आयामों को जानना चाहते हैं, identifyतो png फ़ाइल पर कमांड का उपयोग करें ।
रॉब डब्ल्यू

आप इमेजस्केप की convert <icon.png> -resize 64x64जगह खुद का इस्तेमाल कर सकते हैं
कुमारहर्ष

मैंने -dither Noneकन्वर्ट कमांड में जोड़ा क्योंकि 256 रंगों के डिफ़ॉल्ट रूपांतरण ने मेरे आइकन पर कुछ शोर जोड़ा
जेम्स रोथ

7

ImageMagick के लिए बेहतर कमांड:

convert in.jpg -define icon:auto-resize=16,48,256 -compress zip out.ico

1
यह वास्तव में एक महान जवाब है। इस कमांड का प्रयोग यह परखने के लिए करें कि फ़ाइल वास्तव में परिवर्तित हो गई है:identify out.ico
कुमारहार

Inkscape द्वारा व्यक्तिगत रूप से निर्यात किए गए बिटमैप वाले pngs में इस उदाहरण में उपयोग किए गए प्रारंभिक png की तुलना में बेहतर स्पष्टता होगी।
UuDdLrLrS

5

आप इसे GIMP में मुफ्त में कर सकते हैं । यहां ऐसा करने के लिए संक्षिप्त निर्देश हैं

उद्धरण के लिए:

  1. जिम्प में अपनी छवि खोलें
  2. अपना कैनवास स्क्वायर बनाएं
  3. छवि पर अपनी परत का आकार बदलें
  4. 64 पिक्सेल की तरह अपने .ico फ़ाइल में सबसे बड़े आकार में परत को स्केल करें
  5. परत को डुप्लिकेट करें
  6. डुप्लिकेट लेयर को अगले आकार में स्केल करें
  7. अपने .ico फ़ाइल में उन सभी आकारों के लिए डुप्लिकेटिंग / स्केलिंग रखें
  8. .Ico के रूप में सहेजें

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


आप इस विधि से कई रंग गहराई का समर्थन कैसे करते हैं?
रैंडम 832

यह नहीं कह सकता कि मुझे व्यक्तिगत रूप से ऐसा करना पड़ा है, लेकिन यह पोस्ट कहती है कि GIMP को सहेजने पर प्रत्येक परत के लिए एक रंग सेटिंग संवाद पॉप अप करना चाहिए।
टेकटर्टल

आपको जिम्प 2.8.16 में निर्यात करने का चयन करना है लेकिन वर्षों बाद, मैं यह स्वीकार कर सकता हूं कि जब आप इको निर्यात करते हैं तो रंग सेटिंग्स के लिए एक संवाद होता है।
ब्रोच वेम्ब जूल

1

यहाँ स्वीकार किए जाते हैं जवाब से रोब डब्ल्यू एक बार से अधिक आकार (16, 32, आदि) टाइप करने के लिए होने से बचने के लिए बहुत मामूली अनुकूलन के साथ,:

#!/bin/bash
files=()
for size in 16 32 48 128 256; do
    inkscape -z -e "$size.png" -w "$size" -h "$size" logo.svg > /dev/null 2> /dev/null
    files+=("$size.png")
done
convert "${files[@]}" -colors 256 favicon.ico
unlink  "${files[@]}"

यहां logo.svgइनपुट (स्रोत) छवि का प्रतिनिधित्व करता है, जिसमें से हम वांछित आकारों ( , आदि) की छोटी फाइलें बनाते हैं 16.png, 32.pngजिन्हें हम फिर आउटपुट (परिणाम) आइकन फ़ाइल में जोड़ते हैं favicon.ico। आप पंक्ति 3 में आकारों की सूची को बदल सकते हैं, उदाहरण के लिए, "16 24 32 48 64 64 72 128" पर, और convertकमांड स्वचालित रूप से तदनुसार अनुकूल हो जाएगी, क्योंकि यह स्क्रिप्ट जी-मैन द्वारा वर्णित तकनीक का उपयोग करता है यहां एक निर्माण करने के लिए फ़ाइल नाम की सरणी। और अंत में हम फिर से फ़ाइल नाम के सरणी का उपयोग करके पंक्ति 4 में बनाई गई PNG फ़ाइलों को अनलिंक (हटाएं) करते हैं।


मैंने देखा है कि कमांड:

convert logo.svg -define icon:auto-resize=16,48,256 -compress zip favicon.ico

( user400747 के जवाब में प्रस्तुत एक के बराबर ) वास्तव में बिटमैप छवि (खोई हुई गुणवत्ता) और परतों की पृष्ठभूमि की पारदर्शिता खो गई है।


1
(१) आपने अनिवार्य रूप से किसी और के उत्तर की नकल की है। यदि आपने ऐसा किया है और इससे अधिक कुछ नहीं (हाँ, लोग कभी-कभी ऐसा करते हैं), तो मैं आपके उत्तर को हटाने के लिए झंडी दिखाऊंगा। मैं ऐसा नहीं कर रहा हूं, क्योंकि आपने थोड़ा सुधार किया है। लेकिन, जब भी आप किसी और के काम की नकल करते हैं, तो आपको मूल लेखक को नाम और उस जानकारी से जोड़कर स्वीकार करना चाहिए जिसे आप उद्धृत कर रहे हैं। (२) कृपया बिना मतलब बताए "यह और अधिक लचीला है" जैसी बातें न करें। … (Cont'd)
स्कॉट

(Cont'd)… (3) आपको हमेशा शेल वेरिएबल्स को उद्धृत करना चाहिए जब तक कि आपके पास कोई अच्छा कारण न हो, और आपको यकीन है कि आप जानते हैं कि आप क्या कर रहे हैं। वास्तव में, मैंने उन सभी उदाहरणों के बारे में देखा है जो शेल वेरिएबल्स का उपयोग किए बिना उन्हें उद्धृत करते हैं, आपका (यानी, रॉब डब्ल्यू ) कम से कम खराब हो सकता है। लेकिन फिर भी, चर को उद्धृत करना बेहतर है। (४) unlinkअधिक सामान्य के बजाय आप इसका उपयोग क्यों करते हैं rm?
स्कॉट

1

Windows बैच फ़ाइल, जो कई आकार की .PNGs बनाती है और उन्हें एक .ICO फ़ाइल में मिला देती है:

@echo off

set inkScape="C:\SOFTWARE\GRAPHIC\INKSCAPE\inkscape.exe"
set imageMagick="C:\SOFTWARE\DEVELOPER\IMAGEMAGICK\magick.exe"
set fileName=favicon
set importType=svg
set exportType=png
set exportDpi=300
set imageSizes=(16 24 32 48 57 60 64 70 72 76 96 114 120 128 144 150 152 180 192 196 256 300 320 400 450 460 480 512 600)

for %%s in %imageSizes% do (
 %inkScape% -z -f %~dp0%fileName%.%importType% -w %%s -h %%s -e %~dp0%fileName%-%%sx%%s.%exportType% -d %exportDpi%
 echo CREATED: %fileName%-%%sx%%s.%exportType%
 set e=%fileName%-%%sx%%s.%exportType%
 call :concat (e)
)

%imageMagick% %exportFileNames%"%~dp0%fileName%.ico"
echo MERGED IN: %fileName%.ico

pause goto :eof


:concat (e) (
 set exportFileNames=%exportFileNames%"%~dp0%e%" 
)

यदि आपको .PNG फ़ाइलों की आवश्यकता नहीं है, तो आप उन्हें (या हटा सकते हैं) del FILEएक निर्देशिका के अंदर सभी पीएनजी को हटा सकते हैं (या हटा सकते हैं %imageMagick% %exportFileNames%"%~dp0%fileName%.ico")।

आशा है कि यह किसी की मदद करता है। :)


0

यह मेरी राय है कि Axialis IconMaker आइकन की समस्याओं का सबसे अच्छा समाधान है। 30 दिनों का परीक्षण है जो संभवतः आपके लिए समस्या का समाधान करेगा।

मैंने इतने सालों से Axialis का उपयोग किया है और इतने सारे प्रोजेक्ट्स पर, मैं यह देख सकता हूं कि यह वास्तव में सार्थक उत्पाद है। आप 30 दिनों की जरूरत नहीं होगी! हा!


0

आपको तृतीय-पक्ष आइकन-संपादन प्रोग्राम का उपयोग करना होगा क्योंकि MSPaint केवल प्रति फ़ाइल एक आइकन का समर्थन करता है। कर रहे हैं एक जोड़े का यहाँ धागे आइकन संपादकों, कुछ नि: शुल्क, कुछ वाणिज्यिक के लिए सिफारिशों के साथ।

एक बार जब आप एक आइकन संपादक पर बस जाते हैं, तो आइकन स्वरूपों को जोड़ने की विधि अलग-अलग होगी लेकिन आम तौर पर समान होती है (आप एक बटन क्लिक करते हैं या एक नया प्रारूप जोड़ने के लिए मेनू आइटम का चयन करते हैं)। अधिकांश प्रोग्राम आपको आइकन प्रारूप / आकार जोड़ते समय एक आइकन फ़ाइल आयात करने देंगे, लेकिन अधिकांश आपको इसे फिर से आकार देकर मौजूदा से एक नया प्रारूप / आकार बनाने देंगे।

यदि आप एक नया प्रारूप / आकार जोड़ते समय क्रिएट-से-मौजूदा विकल्प का उपयोग करने का चयन करते हैं , तो सुनिश्चित करें कि उन्हें पहले से उपलब्ध सबसे बड़े आइकन प्रारूप से बनाना है क्योंकि इसमें री-साइज़िंग एल्गोरिदम के साथ काम करने के लिए सबसे अधिक डेटा होगा। । साथ ही, XP / Vista आइकन बनाते समय पारदर्शिता के साथ एक संस्करण का उपयोग करना सुनिश्चित करें क्योंकि अधिकांश प्रोग्राम खरोंच से अल्फा चैनल बनाने में महान नहीं हैं।


मुझे 200 से अधिक आइकन के लिए ऐसा करने की आवश्यकता है। क्या उन आइकन संपादकों में से कोई भी बैच में चीजें चला सकता है?
सुचि

1
मुझे याद नहीं है कि मैंने कभी बैच मोड वाले आइकन संपादक को देखा हो। आप बैच मोड में एक छवि संपादक का उपयोग करने की कोशिश कर सकते हैं, लेकिन मुझे यकीन नहीं है कि किसी भी छवि-संपादकों के पास बहु-प्रारूप आइकन समर्थन है (कम से कम कमांड-लाइन / बैच-मोड से नहीं)। यदि कोई करता है, तो यह इमेजमैजिक होगा। साथ ही, आपको प्रश्न में वॉल्यूम और बैच-मोड आवश्यकता को जोड़ना चाहिए।
सिंटेक

0

आप Matthias Benkmann का png2ico आज़मा सकते हैं । यह मुफ़्त है और एकल आईको फ़ाइल में बहु आकार पीएनजी पैक कर सकते हैं।


हालांकि इसके कुछ दिलचस्प प्रतिबंध हैं:Width must be multiple of 8 and <256. Height must be <256.
फ्रेंकोइस बोथा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.