यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
किसी छवि को PNG या JPEG में कैसे सहेजें
उद्देश्य। किसी Image को डिस्क पर स्थायी बनाना। CrossFly दो स्तर प्रदान करता है: सुविधा
(टाइमस्टैम्प द्वारा नामित फ़ाइल सहेजता है और पथ लौटाता है) और पूर्ण नियंत्रण (आप
OutputStream प्रदान करते हैं)।
सुविधा (स्वचालित रूप से फ़ाइल सहेजता है)
String toPng(String... prefix)—<prefix><timestamp>.pngनाम से एक PNG सहेजता है। डेस्कटॉप परDevice.homeFolderमें रिकॉर्ड करता है; मोबाइल पर/sdcard/में रिकॉर्ड करता है। सहेजा गया पथ लौटाता है, या त्रुटि की स्थिति मेंnull(त्रुटि को आंतरिक रूप सेDebug.handleके माध्यम से संभाला जाता है)।prefixवैकल्पिक है।String toJpg(int... quality)— टाइमस्टैम्प द्वारा नामित एक JPEG सहेजता है।qualityवैकल्पिक है (डिफ़ॉल्ट90);100= बिना संपीड़न,85= अच्छा संपीड़न,60= अधिक संपीड़न लेकिन शोर के साथ। पथ लौटाता है, या त्रुटि मेंnull।
पूर्ण नियंत्रण (आप stream प्रदान करते हैं)
void toPng(OutputStream s) throws ImageException, IOException— PNG को stream में रिकॉर्ड करता है। PNG 24 BPP है, या यदि छवि में अल्फा चैनल हो तो 32 BPP।void toJpg(OutputStream s, int quality) throws ImageException, IOException— दी गई गुणवत्ता (0–100) के साथ JPEG को stream में रिकॉर्ड करता है। stream को कॉल द्वारा बंद कर दिया जाता है।
ओवरलोड पर ध्यान दें:
toPng(String...)/toJpg(int...)एक फ़ाइल सहेजते हैं और अपवादों को निगल लेते हैं (nullलौटाते हैं)। जबकिtoPng(OutputStream)/toJpg(OutputStream,int)ImageException/IOExceptionको प्रसारित करते हैं। इसे इस अनुसार चुनें कि आप त्रुटि संभालना चाहते हैं या नहीं।
पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
package com.exemplo;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import dev.crossfly.ui.*; // Window
import dev.crossfly.ui.layout.*; // VerticalLayout
import dev.crossfly.ui.image.*; // Image, ImageException
import dev.crossfly.util.*; // Debug
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
try {
Image img = new Image("/sdcard/foto.jpg"); // आपकी पहले से लोड या जनरेट की गई इमेज
// 1) सुविधा: timestamp वाली फ़ाइल; पथ लौटाता है
String pngPath = img.toPng("thumb_"); // उदा.: .../thumb_20260706153000.png
String jpgPath = img.toJpg(85); // गुणवत्ता 85
Debug.log("PNG: " + pngPath + " | JPG: " + jpgPath);
// 2) पूर्ण नियंत्रण: आप गंतव्य तय करते हैं और त्रुटियाँ संभालते हैं
try (OutputStream out = new FileOutputStream("/sdcard/saida.png")) {
img.toPng(out); // stream कॉल द्वारा बंद होता है; अपवाद प्रसारित करता है
} catch (ImageException | IOException e) {
// लेखन/एन्कोडिंग विफलता को संभालें
}
} catch (ImageException | IOException e) {
// स्रोत इमेज लोड करने में विफल
}
}
}
नीचे दिया गया अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए
MainWindowढांचे में रखें।
न्यूनतम अंश
// स्रोत में सत्यापित: Image.java toPng/toJpg — पंक्तियाँ 800, 811, 1454, 1479
import dev.crossfly.ui.image.*; // Image, ImageException
Image img = /* आपकी पहले से लोड या जनरेट की गई इमेज */;
// 1) सुविधा: timestamp वाली फ़ाइल; पथ लौटाता है
String pngPath = img.toPng("thumb_"); // उदा.: .../thumb_20260706153000.png
String jpgPath = img.toJpg(85); // गुणवत्ता 85
// 2) पूर्ण नियंत्रण: आप गंतव्य तय करते हैं और त्रुटियाँ संभालते हैं
try (java.io.OutputStream out = new java.io.FileOutputStream("/sdcard/saida.png")) {
img.toPng(out); // stream कॉल द्वारा बंद होता है; अपवाद प्रसारित करता है
} catch (ImageException | java.io.IOException e) {
// लेखन/एन्कोडिंग विफलता को संभालें
}
और गहराई से जानें
- संबंधित रेसिपी: thumbnail.md — थंबनेल बनाएँ और फिर इस रेसिपी के साथ सहेजें।
- संबंधित रेसिपी: screenshot.md — स्क्रीन कैप्चर करें और
toPng()के साथ सहेजें।
क्या यह पृष्ठ उपयोगी था?प्रतिक्रिया के लिए धन्यवाद!