در این قسمت تیم کدگیت را با آموزش ساخت پیکسلهای تصادفی در جاوا همراهی کنید. در آغاز آموزش توضیح کوتاهی در مورد ساخت پیکسلهای تصادفی در جاوا داده و سپس به پیاده سازی کد آن خواهیم پرداخت. همچنین پیشنهاد میکنیم قبل از مطالعه این جلسه، آموزشهای زیر را مطالعه کنید:
ساخت پیکسلهای تصادفی در جاوا
در آموزشهای گذشته در مورد خواندن یک تصویر از درون سیستم و نحوه دریافت پیکسلهای آن صحبت کردیم. اما این جلسه برخلاف جلسات گذشته میخواهیم خودمان تصویری ساخته (از طریق کد) و درون سیستم ذخیره کنیم. برای این کار باید از کلاسی به نام BufferedImage استفاده کرد. از این کلاس برای نگهداری عکس درون حافظه RAM استفاده میشود.
الگوریتم ساخت پیکسلهای تصادفی به صورت زیر میباشد:
- ابعاد تصویر را مشخص کرده.
- از کلاس BufferedImage برای نگهداری و ساخت تصویر استفاده کرده.
- به پارامترهای ARGB پیکسل خود مقادیر تصادفی میدهیم.
- پارامتر مرحله قبل را درون پیکسل تصویر قرار میدهیم.
- مراحل 3 و 4 را برای تمامی پیکسلها انجام میدهیم.
پیاده سازی ساخت پیکسلهای تصادفی در جاوا
برای پیاده سازی پیکسلهای تصادفی ما از تابع Math.Random استفاده کردیم. این تابع یک عدد بین 0 تا 1 به ما میدهد. سپس ما این عدد را در 256 ضرب میکنیم(چرا؟!) در آخر قسمت اعشاری را حذف و عدد بدست آمده به عنوان پیکسل خود قرار میدهیم. کد این برنامه به صورت زیر میباشد:
public class RandomImage {
public static void main(String args[]) throws IOException {
// Image file dimensions
int width = 640, height = 320;
// Create buffered image object
BufferedImage img = null;
img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
System.out.println("Creating BufferImage...");
// file object
File f = null;
// create random values pixel by pixel
System.out.println("create random values pixel by pixel...");
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int a = (int) (Math.random() * 256); // generating
int r = (int) (Math.random() * 256); // values
int g = (int) (Math.random() * 256); // less than
int b = (int) (Math.random() * 256); // 256
Color col = new Color(r, g, b, a); // pixel
img.setRGB(x, y, col.getRGB());
}
}
// write image
System.out.println("write image...");
try {
f = new File("RandomPixel.jpg");
ImageIO.write(img, "jpg", f);
} catch (IOException e) {
System.out.println("Error: " + e);
}
}
}
خروجی کد بالا به صورت زیر میباشد:
سلام، ممنون از اموزش خوبتون