কীভাবে পিএনজি ফাইলের ডিপিআই পরিবর্তন করবেন? (কমান্ড লাইনে, ইমেজম্যাগিক ছাড়াই)


9

আমি পিএনজি চিত্র ফাইলগুলিতে ডিপিআই পরিবর্তন করার জন্য একটি উপায় খুঁজছি। ইমেজম্যাগিক ব্যবহার করা এটি সহজ:

$ convert -density 150 -units pixelsperinch file.png file.png

সমস্যাটি হ'ল আমি এই অ্যাপ্লিকেশনটি থেকে এই কমান্ডটি চালাবো, একাধিক ভিএমগুলিতে চলছি, যা ইমেজম্যাগিক ইনস্টলড নেই। আমি এই ভিএমগুলিতে আপগ্রেড প্যাকেজগুলি ধাক্কা দিতে পারি, তবে ইমেজম্যাগিকের ক্ষেত্রে এটি একটি আপগ্রেড বান্ডেলে প্রায় 30MB যোগ করবে, যা আমার ব্যবহারের ক্ষেত্রে কিছুটা বেশি।

দীর্ঘ গল্প সংক্ষিপ্ত : একটি ছোট (প্যাকেজের আকারের মতো) কমান্ড-লাইন সরঞ্জামটি ব্যবহার করে আমি কী কোনও পিএনজি ফাইলে ডিপিআই পরিবর্তন করতে পারি?

Allyচ্ছিকভাবে, কোনও কাঁচা চিত্রের ফাইলে বাইটগুলি পরিবর্তন করাও ঠিক আছে, যদি কেউ জানেন কোথায় তাদের সন্ধান করা হবে ...


আপনি নিজের বাস্তবায়নটি বিবেচনা করতে পারেন। পিএনজি অংশগুলি পরিচালনা করা যথেষ্ট সোজা-ফরওয়ার্ড। আপনি যদি কেবলমাত্র তাদের সকলের জন্য একটি নির্দিষ্ট ডিপিআই প্রয়োগ করতে চান, আপনার এমনকি একটি ওয়ার্কিং চেকসাম ফাংশনও লাগবে না - কেবল pHYsফটোশপের তৈরি পিএনজি থেকে প্রাক-তৈরি অংশটি অনুলিপি করুন ।
Zdenek

উত্তর:


6

2.10 এমবি কি যথেষ্ট ছোট? যদি হ্যাঁ, NConvers এবং ব্যাচ কমান্ড ব্যবহার করুন:

nconvert -out png -dpi 150 -keepdocsize -keepfiledate mysource.png

এনকনভার্ট কীসের জন্য?

এক্সএনভিউ একটি জিইউআই-ভিত্তিক অ্যাপ্লিকেশন, আপনি কোনও গ্রাফিকাল ইউজার ইন্টারফেস ব্যবহার করে চিত্রগুলি পরিবর্তন এবং হেরফের করতে পারেন। এনকনভার্টের এক্সএনভিউয়ের মতো একই ক্ষমতা রয়েছে তবে এটি একটি কমান্ড লাইন সরঞ্জাম এবং গ্রাফিকাল ইউজার ইন্টারফেস নেই। আপনি ব্যাচ স্ক্রিপ্টগুলিতে এনকনভার্ট ব্যবহার করতে পারেন বা অন্য কোনও অ্যাপ্লিকেশন এটিকে কল করতে পারে।

সাহা্য্যকারী লিংক

  • শুরুর জন্য কয়েকটি উদাহরণ সহ শিক্ষানবিশ গাইড এবং উইকি
  • কোন কমান্ড লাইনের প্যারামিটারগুলি উপলব্ধ তা দেখতে ফাইলটি সহায়তা করুন (পেস্টবিনে আপলোড করা হয়েছে)
  • এনকনভার্ট ব্যবহার করে একটি গ্রাফিকাল ফ্রন্ট-এন্ড হ'ল এক্সএন কনভার্ট । এনকোভার্ট ব্যাচ ফাইলগুলি তৈরি ও রফতানি করতে এটি ব্যবহার করুন
  • এক্সকনভার্ট এবং এনকনভার্টের জন্য ফোরাম

ধন্যবাদ, দুর্দান্ত দেখাচ্ছে এবং সম্ভবত ভবিষ্যতে কার্যকর হবে! এই ক্ষেত্রে আমি পিএনজি ফর্ম্যাট (যা সৌভাগ্যক্রমে যথেষ্ট সহজ ছিল) অধ্যয়ন এবং একটি ছোট কাস্টম অ্যাপের (পিএইচপি-র 15 লাইন) মাধ্যমে চিত্রগুলি পরিবর্তন করে শেষ করেছি।
jhndodo

এই ছবিটি আকর্ষণীয় মনে হচ্ছে আপনি কি আমাদের সাথে আপনার আবেদনটি ভাগ করতে চান?
নিক্সদা

দুর্ভাগ্যক্রমে আমি এটি করার স্বাধীনতা পাচ্ছি না, তবে আপনি পিএনজি ফাইল ফর্ম্যাটটির একটি (দুর্দান্ত!) স্পেসিফিকেশন পড়ে এবং পিএইচওয়াইয়ের অংশটিকে পরিবর্তিত করে এমন একটি অ্যাপ্লিকেশন তৈরি করে এটি করতে পারেন । আপনি কী করছেন তা জানার পরে এটি সত্যিই সহজ।
jhndodo

1

আপনি উল্লেখ করেছিলেন যে আপনি এই আদেশটি "আপনার অ্যাপ্লিকেশন থেকে" চালাবেন এবং এটি আমাকে বিশ্বাস করতে পরিচালিত করে যে আপনি এই অ্যাপ্লিকেশনটি লিখেছেন বা এটি রক্ষণ করছেন। এটি বলেছিল যে বেশ কয়েকটি ভাষার জন্য ইমেজম্যাগিক এপিআই রয়েছে এবং আপনি তাদের বিদ্যমান প্রোগ্রামে কার্যকারিতা যুক্ত করতে এর মধ্যে একটি ব্যবহার করতে পারেন। আপনার অ্যাপ্লিকেশনটি কোন ভাষায় লিখিত আছে এবং আপনি গ্রন্থাগারটি স্থিতিশীলভাবে বা গতিশীলভাবে সংযুক্ত করেছেন কিনা তার উপর প্যাকেজের আকারের বৃদ্ধি নির্ভর করবে, তবে আমি ধারণা করব এটি 30 এমবি বৃদ্ধির চেয়ে উল্লেখযোগ্যভাবে ছোট হবে।

অন্য বিকল্পটি পুরো ইমেজম্যাগিক প্যাকেজটি অন্তর্ভুক্ত করা নয়। আপনি ইমেজম্যাগিক জিপ ফাইলটি ডাউনলোড করতে পারেন (যা কেবল ১৩ এমবি বিটিডাব্লু) এবং কেবলমাত্র convertসরঞ্জামটি এবং এটির নির্ভরতা বের করে তা আপনার ভিএম-তে বিতরণ করতে পারেন। ডিপেন্ডেন্সি ওয়াকার নামে একটি সরঞ্জাম রয়েছে যা আপনি convertসরঞ্জামটির নির্ভরতা কী তা নির্ধারণ করতে ব্যবহার করতে পারেন ।


1

ব্যবহার করুন -sizeমধ্যে পতাকা netpbm pnmtopng প্রোগ্রাম। ব্যবহৃত ইউনিটগুলি প্রতি মিটার পিক্সেল। নিম্নলিখিত উদাহরণটি newfile.png 300dpi এ সেট করবে।

pngtopnm <oldfile.png | pnmtopng -size='11811 11811 1' >newfile.png

0

ঠিক আছে, আপনি সম্ভবত একটি অজগর স্ক্রিপ্ট ব্যবহার করতে পারেন।

#!/usr/bin/python
im = Image.open("in.png")
nx, ny = im.size
im2 = im.resize((int(nx*1.5), int(ny*1.5)), Image.BICUBIC)
im2.save("out.png")

উত্স


পাইথন ৩.৩.২ ইনস্টলার (উত্স কোড সহ নয়) 19.3 এমবি এবং পাইথন 2.7.5 ইনস্টলারটি 15.5 এমবি MB
ড্রু চ্যাপিন

5
এটি চিত্রের আকার পরিবর্তন করবে, ডিপিআই পরিবর্তন করবে না।
ববি

0

এর জন্য যথাযথ চিত্র Magick "রূপান্তর" কমান্ড লাইনটি হ'ল-নমুনা যুক্তিটি ব্যবহার করা:

convert image.png -resample 150x150 -units pixelsperinch ../ImagesAdjusted/image.png
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.