كيفية تغيير حجم الصور في java
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع الرسومات Java 2D/3D Graphics
صفحة 1 من اصل 1 • شاطر
كيفية تغيير حجم الصور في java
في Java يمكنك تغيير حجم (أو قياس) صورة مقروءة من ملف وحفظ الصورة بعد تغير حجمها كملف اخر ، يمكننا اتباع هذه الخطوات:
نقوم بإنشاء الكائن BufferedImage لقراءة الصورة المدخلة عن طريق استدعاء الطريقة read(File)للفئة ImageIO.
ايضا سوف نستخدم الكائن BufferedImage لتحديد العرض والارتفاع المطلوب.
رسم الصورة المدخلة فى الكائن BufferedImage باستخدام الكائن Graphics2D .
بحفظ المخرجة إلى ملف على القرص باستخدام طريقة write(File) لفئة ImageIO.
واليكم مثال ينفذ طريقتين لتغيير حجم صورة وحفظ النتيجة إلى ملف صورة آخر
نقوم بإنشاء الكائن BufferedImage لقراءة الصورة المدخلة عن طريق استدعاء الطريقة read(File)للفئة ImageIO.
ايضا سوف نستخدم الكائن BufferedImage لتحديد العرض والارتفاع المطلوب.
رسم الصورة المدخلة فى الكائن BufferedImage باستخدام الكائن Graphics2D .
بحفظ المخرجة إلى ملف على القرص باستخدام طريقة write(File) لفئة ImageIO.
واليكم مثال ينفذ طريقتين لتغيير حجم صورة وحفظ النتيجة إلى ملف صورة آخر
- الكود:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageResizer {
public static void resize(String inputImagePath,
String outputImagePath, int scaledWidth, int scaledHeight)
throws IOException {
// reads input image
File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);
// creates output image
BufferedImage outputImage = new BufferedImage(scaledWidth,
scaledHeight, inputImage.getType());
// scales the input image to the output image
Graphics2D g2d = outputImage.createGraphics();
g2d.drawImage(inputImage, 0, 0, scaledWidth, scaledHeight, null);
g2d.dispose();
// extracts extension of output file
String formatName = outputImagePath.substring(outputImagePath
.lastIndexOf(".") + 1);
// writes to output file
ImageIO.write(outputImage, formatName, new File(outputImagePath));
}
public static void resize(String inputImagePath,
String outputImagePath, double percent) throws IOException {
File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);
int scaledWidth = (int) (inputImage.getWidth() * percent);
int scaledHeight = (int) (inputImage.getHeight() * percent);
resize(inputImagePath, outputImagePath, scaledWidth, scaledHeight);
}
/**
* Test resizing images
*/
public static void main(String[] args) {
String inputImagePath = "D:/Photo/Puppy.jpg";
String outputImagePath1 = "D:/Photo/Puppy_Fixed.jpg";
String outputImagePath2 = "D:/Photo/Puppy_Smaller.jpg";
String outputImagePath3 = "D:/Photo/Puppy_Bigger.jpg";
try {
// resize to a fixed width (not proportional)
int scaledWidth = 1024;
int scaledHeight = 768;
ImageResizer.resize(inputImagePath, outputImagePath1, scaledWidth, scaledHeight);
// resize smaller by 50%
double percent = 0.5;
ImageResizer.resize(inputImagePath, outputImagePath2, percent);
// resize bigger by 50%
percent = 1.5;
ImageResizer.resize(inputImagePath, outputImagePath3, percent);
} catch (IOException ex) {
System.out.println("Error resizing the image.");
ex.printStackTrace();
}
}
}
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: كيفية تغيير حجم الصور في java
ايضا يمكن تغير حجم الصورة با ستخدام الشفرة التالية :
- الكود:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JComponent;
import javax.swing.JFrame;
class MyCanvas extends JComponent {
public void paint(Graphics g) {
Image img1 = Toolkit.getDefaultToolkit().getImage("yourFile.gif");
int width = img1.getWidth(this);
int height = img1.getHeight(this);
int scale = 2;
int w = scale * width;
int h = scale * height;
// explicitly specify width (w) and height (h)
g.drawImage(img1, 10, 10, (int) w, (int) h, this);
}
}
public class Graphics2DDrawScaleImage {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 300, 300);
window.getContentPane().add(new MyCanvas());
window.setVisible(true);
}
}
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع الرسومات Java 2D/3D Graphics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
أمس في 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft