मैं एक छवि है जो एक बाइट [] सरणी के रूप में संग्रहीत किया जाता है, और मुझे खड़ी कहीं और डिस्क पर बाइट्स लिखने से पहले छवि फ्लिप करना चाहते हैं।एक बाइट सरणी के रूप में जमा एक छवि फ्लिप
छवि एक संकुचित JP2 छवि फ़ाइल से आते हैं बाइट्स। मैंने Flip image stored as a byte[] array जैसे कुछ को लागू करने में देखा है, लेकिन मैं एंड्रॉइड में काम नहीं कर रहा हूं और बिटमैप फैक्ट्री तक पहुंच नहीं है। मैं भी एक BufferedImage के लिए बाइट सरणी परिवर्तित पहले, तो यह flipping में देखा है, लेकिन ऊंचाई और छवि की चौड़ाई वर्तमान संदर्भ (संपादित में ज्ञात नहीं है: मैं कोड को संशोधित किया है ताकि ऊंचाई और चौड़ाई हैं अब जाना जाता है)।
सिर्फ सख्त सरणी हेरफेर के साथ ऐसा करने के लिए एक रास्ता है?
संपादित करें: का प्रयास किया गया फ्लिप कोड
public static byte[] flip(byte[] imageBytes) {
//separate out the sub arrays
byte[] holder = new byte[imageBytes.length];
byte[] subArray = new byte[dimWidth];//dimWidth is the image width, or number of matrix columns
int subCount = 0;
for (int i = 0; i < imageBytes.length; i++) {
subArray[subCount] = imageBytes[i];
subCount++;
if (i% dimWidth == 0) {
subArray = reverse(subArray);
if (i == (dimWidth)) {
holder = subArray;
} else {
holder = concat(holder, subArray);
}
subCount = 0;
subArray = new byte[dimWidth];
}
}
subArray = new byte[dimWidth];
System.arraycopy(imageBytes, imageBytes.length - dimWidth, subArray, 0, subArray.length);
holder = concat(holder, subArray);
imageBytes = holder;
return imageBytes;
}
तो फिर क्या जाना जाता है? –
@ होवरक्राफ्टफुलऑफेल सख्ती से बोलते हुए, मेरे पास इन्हें इंटरलविंग करने से पहले अपने स्वयं के सरणी में उच्च बाइट्स और कम बाइट्स हैं। जो कुछ भी जाना जाता है वह पिक्सेल डेटा सरणी और मूल पूर्व-संपीड़न शीर्षलेख जानकारी वाले डेटा सरणी है। – Sarah
"लेकिन ऊंचाई और छवि की चौड़ाई ज्ञात नहीं है" यह यह असंभव को पता है जहां के साथ पिक्सल स्वैप करने के लिए बनाता है (जब तक ऊंचाई और चौड़ाई प्रधानमंत्री हैं, और आप जानते हैं कि कौन बड़ा है)। –