সমাধান
এটি lisp/image-mode.el
লেখার জন্য আমি উত্স কোডটি ব্যবহার করেছি। যে কোনও চিত্র বাফারে এই ফাংশনটি কল করা চিত্র এবং উইন্ডোর উচ্চতা / প্রস্থের অনুপাতের উপর নির্ভর করে প্রস্থ বা উচ্চতার সাথে মানানসই আকার পরিবর্তন করবে।
এই ফাংশনটি কাজ করার জন্য আপনার এই 2 টি জিনিস প্রয়োজন:
- আপনার ইমাকগুলি চিত্রম্যাগিকের সাথে সংকলিত হওয়া দরকার ।
- ডিফল্টরূপে
libjpeg
লোডার jpg
চিত্রগুলি পরিচালনা করতে ব্যবহৃত হয় । এই উত্তরের পরবর্তী অংশে প্রদর্শিত হ্যাকটি ইমার্সকে imagemagick
লোডার ব্যবহার করতে বাধ্য করতে ব্যবহৃত হয় ।
(ডিফুন মোডি / চিত্র-রূপান্তর-ফিট থেকে উইন্ডো) ()
"চিত্র এবং উইন্ডো অনুপাতের ভিত্তিতে প্রস্থ বা উচ্চতা মাপতে চিত্রটিকে পুনরায় আকার দিন।
এই ফাংশনটি চালাতে ইমেজম্যাগিকের প্রয়োজন ""
(ইন্টারেক্টিভ)
(আসুন * ((আইএমজি-আকার (চিত্র-প্রদর্শন-আকার (চিত্র-প্রাপ্ত-প্রদর্শন-সম্পত্তি) টি)))
(আইএমজি-প্রস্থ (গাড়ি ইমগ-আকার))
(img- উচ্চতা (সিডিআর img আকার))
(আইএমজি-এইচ / ডাব্লু-অনুপাত (/ (ফ্লোট ইমগ-উচ্চতা) (ফ্লোট ইমগ-প্রস্থ))))
(উইন-প্রস্থ (- (2 তম 2 (উইন্ডো-ভিতরে-পিক্সেল-প্রান্তগুলি)))
(নবম 0 (উইন্ডো-ভিতরে-পিক্সেল-প্রান্তগুলি))))
(উইন-উচ্চতা (- (নবম 3 (উইন্ডো-ভিতরে-পিক্সেল-প্রান্তগুলি)))
(নবম 1 (উইন্ডো-ভিতরে-পিক্সেল-প্রান্তগুলি))))
(উইন-এইচ / ডাব্লু-অনুপাত (/ (ফ্লোট উইন-উচ্চতা) (ভাসা উইন-প্রস্থ)))))
;; উইন্ডোটির h / w অনুপাতটি যদি চিত্রের h / w অনুপাত হয় তবে প্রস্থ অনুসারে চিত্রটি ফিট করুন
(যদি (> উইন-এইচ / ডাব্লু-অনুপাত ইম্জি-এইচ / ডাব্লু-অনুপাত)
(ছবির-রুপান্তর সুস্থ-টু-প্রস্থের)
;; অন্য উচ্চতা অনুসারে ফিট
(ছবির-রুপান্তর সুস্থ-টু-উচ্চতা))))
imagemagick
চিত্রগুলি লোড করার জন্য ইম্যাক্সকে বাধ্য করতে হ্যাক করুন
Emacs বাগ রিপোর্ট মাধ্যমে নিম্নলিখিত পর #18797
, #10746
এবং #10112
, নিম্নলিখিত সমাধান লোড ইমেজ ImageMagick অত্যাচার কাজ; এটি আপনার কোথাও রাখুন init.el
:
আমি ব্যবহার করতে Emacs বাধ্য হয়েছে imagemagick
শুধুমাত্র ইমেজ জন্য আমার পরিচিত ফাইলগুলি: png
, tiff
, jpg/jpeg
এবং svg
; বাকিগুলি ডিফল্ট হিসাবে রাখা হয়। আমি gif
ডিফল্ট লোডার দ্বারা ফাইলগুলি খোলার মঞ্জুরি দেওয়া বেছে নিয়েছি কারণ ইমাস 24.4 বহু-ফ্রেম চিত্র দেখার জন্য উন্নত সমর্থন করেছে। পুরো regexp নেওয়া হয়েছে lisp/image.el
।
(setq image-type-header-regexps
`(
("\\`/[\t\n\r ]*\\*.*XPM.\\*/" . xpm)
("\\`P[1-6]\\\(?:\
\\(?:\\(?:#[^\r\n]*[\r\n]\\)?[[:space:]]\\)+\
\\(?:\\(?:#[^\r\n]*[\r\n]\\)?[0-9]\\)+\
\\)\\{2\\}" . pbm)
("\\`GIF8[79]a" . gif)
;; ("\\`\x89PNG\r\n\x1a\n" . png) ;; Uncomment this (and comment the below line) to enable inline png images in org-mode
("\\`\x89PNG\r\n\x1a\n" . imagemagick) ; png
("\\`[\t\n\r ]*#define \\([a-z0-9_]+\\)_width [0-9]+\n\
#define \\1_height [0-9]+\n\\(\
#define \\1_x_hot [0-9]+\n\
#define \\1_y_hot [0-9]+\n\\)?\
static \\(unsigned \\)?char \\1_bits" . xbm)
;; ("\\`\\(?:MM\0\\*\\|II\\*\0\\)" . tiff)
("\\`\\(?:MM\0\\*\\|II\\*\0\\)" . imagemagick) ; tiff
("\\`[\t\n\r ]*%!PS" . postscript)
;; ("\\`\xff\xd8" . jpeg) ;; Uncomment this (and comment the below line) to enable inline jpg images in org-mode
("\\`\xff\xd8" . imagemagick) ; jpeg
("\\`\377\330" . imagemagick) ; jpeg
(,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)")
(comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\r\n]*<\\)")))
(concat "\\(?:<\\?xml[ \t\r\n]+[^>]*>\\)?[ \t\r\n]*<"
comment-re "*"
"\\(?:!DOCTYPE[ \t\r\n]+[^>]*>[ \t\r\n]*<[ \t\r\n]*" comment-re "*\\)?"
"[Ss][Vv][Gg]"))
;; . svg) ;; Uncomment this (and comment the below line) to enable inline svg images in org-mode
. imagemagick) ; svg
))
অপূর্ণতা
- লোড হওয়ার জন্য চয়ন করা
imagemagick
চিত্রের ধরণগুলি ইনলাইন চিত্র হিসাবে প্রদর্শিত হবে না org-mode
।
তথ্যসূত্র
eimp
ফাইলটি পরিবর্তন করে। এটি কেবল পঠনযোগ্য চিত্রগুলিতে কাজ করে না।