الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل النص الى صورة

بدأه h.shehari في 26 نوفمبر 2012 · 2 رد · 635 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ادخل في اللموضوع على طول بسرع

طبعا الامتحان Open book, oben internet وكل شي يعني لاحد يقول غش

المهم المطلوب كتابة برنامج ساعة رقمية

الساعه كتبتها بسهولة مع استخدام خط رقمي

المطكشلة انه يريد انعكاس عمودي للساعه تحتها

الكود الخاص بتنحويل النص اللى صورة وضعت بدايته تعليق ومكتوب Mirror

import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.swing.*;
import java.util.*;
import javax.imageio.ImageIO;

class Clock extends JFrame implements Runnable {

    Thread runner; //declare global objects
    Font clockFont;
    //
    //---------Mirror image of string
    //
    String fileName = "Image";
    File newFile = new File("./" + fileName + ".jpeg");
    private FontRenderContext frc = new FontRenderContext(null, true, true);
    private Rectangle2D bounds;

    public Clock() {
        super("Java clock");
        setSize(600, 450);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        //setResizable(false);                             //create window
        clockFont = new Font("digifacewide", Font.BOLD, 100);    //create font instance
        Container contentArea = getContentPane();
        ClockPanel timeDisplay = new ClockPanel();
        contentArea.add(timeDisplay);                    //add components
        setContentPane(contentArea);
        start();                                         //start thread running
    }

    public class ClockPanel extends JPanel {

        public void paintComponent(Graphics painter) {
            super.paintComponent(painter);
            painter.setFont(clockFont);                   //create clock components
            painter.setColor(Color.black);
            painter.drawString(timeNow(), 20, 140);
            ///
            //------mirror image of string ---------------
            //
            bounds = clockFont.getStringBounds(timeNow(), frc);
            int w = (int) bounds.getWidth();
            int h = (int) bounds.getHeight();
            BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
            Graphics2D g = image.createGraphics();
            g.setColor(Color.WHITE);
            g.fillRect(0, 0, w, h);
            g.setColor(Color.BLACK);
            g.setFont(clockFont);
            //ImageIO.write(image, "jpeg", fileName);
            g.drawImage(image, null, 200, 200);
        }
    }
    //get current time

    public String timeNow() {
        Calendar now = Calendar.getInstance();
        int hrs = now.get(Calendar.HOUR_OF_DAY);
        int min = now.get(Calendar.MINUTE);
        int sec = now.get(Calendar.SECOND);
        String time = zero(hrs) + ":" + zero(min) + ":" + zero(sec);
        return time;
    }

    public String zero(int num) {
        String number = (num < 10) ? ("0" + num) : ("" + num);
        return number;                                    //Add leading zero if needed
    }

    public void start() {
        if (runner == null) {
            runner = new Thread(this);
        }
        runner.start();
        //method to start thread
    }

    public void run() {
        while (runner == Thread.currentThread()) {
            repaint();
            //define thread task
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                System.out.println("Thread failed");
            }
        }
    }
    //create main method

    public static void main(String[] args) {
        Clock eg = new Clock();
    }
}

ارجو المساعده سريعا

طبعا المشكلة ان دالة عرض الصورة لم تعمل g.drawImage

تم تعديل هذه المشاركة بواسطة h.shehari في 26 نوفمبر 2012 في 09:18

#2

السلام عليكم

باقي أقل من ساعة !!! يبدوا أن الوقت ولَّى نتمنى لك التوفيق وحتى وإن لم يمض الوقت فمعنى Open Internet الغرض منها إختبار مهارتك في كيفية الوصول للمعلومة وليس طلبك للمعلومة من أحد .

وفقك الله

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3
ahmedsaoud31 كتب:

السلام عليكم

باقي أقل من ساعة !!! يبدوا أن الوقت ولَّى نتمنى لك التوفيق وحتى وإن لم يمض الوقت فمعنى Open Internet الغرض منها إختبار مهارتك في كيفية الوصول للمعلومة وليس طلبك للمعلومة من أحد .

وفقك الله

لكني كتبت الكود وجمعت الحلول من عدة مصارد على النت فمثلا في احد الموقع قرأت عن انه من الممكن تحويل النص الى صوره وهذا ما جعلني استخدم هذه الفكره وأنا لم أكن أعرف عن هذا من قبل لهذا اضفت فكرة تحويل النص الى صوره الى برنامجي ولكن المشكلة ان الصورة لم تظهر

وطبعا يوجد شرط في الامتحان وهو انه بعد تنفيذ البرنامج يطلب المدرس ان أريه كافة المواقع او الكتب التي استخدمتها في الحل وفي دفتر الاجابة اكتب الاسطر الاساسة للحل وشكل المخرجات وايضا مجموعة من المصادر التي استعنت بها في الحل

على العموم كتبت البرنامج بطريقة اخرى حيث قمت برسم 7 خطوط للرقم ولكن الساعه لم تكن جميله مثل التي ارفقتها لكم في الموضوع، فالساعه عبر رسم خطوط فقط كانت مشوهه جدا

على العموم لازلت احاول في طريقه لتحويل النص الى صوره

شكرا على الرد

تم تعديل هذه المشاركة بواسطة h.shehari في 27 نوفمبر 2012 في 10:06

مواضيع مشابهة