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

كيف يتم تحويل النص إلى صورة في JSF

بدأه JAVA FOR ALL في 11 نوفمبر 2011 · 8 رد · 1,170 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ...

في الحقيقة أن لدي تطبيق ويب وأريد أن أضع لعملية التسجيل كود التحقق البشري (captcha) يكون من صنعي أنا .. أعلم أنه يمكنني استخدامه جاهزا من بعض الشركات إلا أني أريد التحكم به بشكل كامل ولمآرب أخرى...

طلبي هو:

كيف أقوم بعمليه تحويل النص إلى صورة باستخدام JSF أو بمعنى آخر بدون استخدام Servelet ...

شاكر لكم مقدما تجاوبكم ..

وجزاكم الله خير الجزاء....

تم تعديل هذه المشاركة بواسطة JAVA FOR ALL في 11 نوفمبر 2011 في 00:16

سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولاحول ولا قوة إلا بالله

get-one-91.gif

الخبــــــرة هي مـــــــــــا تحصل عليه عندمــــا لا تحصل على ما تريده....

#2

ما تريد السؤال عنه هو "تحويل نص إلى صورة في الجافا"

فلا يوجد شئ إسمه كود JSF أو كود Servlet مادام ما تريد عمله ليس له علاقة بال HTTP ...

عموما يمكنك أن تقوم بتخزين مجموعه من الصور و مقابل كل صورة تقوم بتخزين الكلمة التي تحملها الصوره ... و بالتالى فأنت معك الصوره و معك الكلمه التي سوف تقوم بالتحقيق منها ... (حل بسيط)..

أو يمكنك إستخدام الرابط بالأعلى للحصول على كول مشابه لهذه للحصول على ما تريد ...

تم تعديل هذه المشاركة بواسطة __Unknown في 11 نوفمبر 2011 في 12:29

1
#3
__Unknown كتب:

ما تريد السؤال عنه هو "تحويل نص إلى صورة في الجافا"

فلا يوجد شئ إسمه كود JSF أو كود Servlet مادام ما تريد عمله ليس له علاقة بال HTTP ...

عموما يمكنك أن تقوم بتخزين مجموعه من الصور و مقابل كل صورة تقوم بتخزين الكلمة التي تحملها الصوره ... و بالتالى فأنت معك الصوره و معك الكلمه التي سوف تقوم بالتحقيق منها ... (حل بسيط)..

أو يمكنك إستخدام الرابط بالأعلى للحصول على كول مشابه لهذه للحصول على ما تريد ...

شكرا لك أخي الفاضل على الرد...

لكن عفوا أنا لم أقل كود JSF !! ولكن قلت باستخدام صفحات JSF يدون اللجوء إلى servelt.. ولاشك أنه لايوجد كود JSF أو servelt

أما تخزين مجموعة صور واستدعائها فلا أظن أنه حل واقعي أو أمني ..

أكرر لك شكري وتقدري على تفاعلك ولازلت بانتظار الإجابه ...

من المكن أن أقوم بعملها بواسطة Paint2D في richfaces

وهذا رابط المثال:

مثال Paint2D في richfaces

أتمنى لو أحد الاخوة يجربه ويخبرنا بالنتائج ..وجزاه الله ألف خير

سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولاحول ولا قوة إلا بالله

get-one-91.gif

الخبــــــرة هي مـــــــــــا تحصل عليه عندمــــا لا تحصل على ما تريده....

#4

هو نفس الكود تقريبا الموجود بالرابط الذي وضعته ...

#5

الموضوع و ما فيه هو أن تقوم بإنشاء Service ... يكون لها مدخل واحد و مخرج واحد ....

هذه الخدمه لن يكون لها علاقه من قريب و لا من بعيد بال JSF

هذه الخدمه تكون عباره عن فئه تقوم بإستقبال نص و ترجع لك كائن على هئيه صوره ...

تستطيع إستخدام هذه الخدمه في أي كود ... كود ويب .. سطح مكتب ... إلخ ...

قمت بعكس العمليه ... تقوم بإدخال نص و يتم تحويله لصوره ...

شاهد كيفية العمل هنا : http://jcaptcha.jelastic.com/intput.jsp

و تستطيع تحميل المثال من المرفقات ...

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

jcaptcha.zip

تم تعديل هذه المشاركة بواسطة __Unknown في 13 نوفمبر 2011 في 02:17

1
#6
__Unknown كتب:

الموضوع و ما فيه هو أن تقوم بإنشاء Service ... يكون لها مدخل واحد و مخرج واحد ....

هذه الخدمه لن يكون لها علاقه من قريب و لا من بعيد بال JSF

هذه الخدمه تكون عباره عن فئه تقوم بإستقبال نص و ترجع لك كائن على هئيه صوره ...

تستطيع إستخدام هذه الخدمه في أي كود ... كود ويب .. سطح مكتب ... إلخ ...

قمت بعكس العمليه ... تقوم بإدخال نص و يتم تحويله لصوره ...

شاهد كيفية العمل هنا : http://jcaptcha.jelastic.com/intput.jsp

و تستطيع تحميل المثال من المرفقات ...

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

جزاك الله خير أخي الفاضل .. أكرر لك شكري ..

جهد موفق وإضافة رائعة ...

انا وصلت ولله الحمد لما أريد من بعد ردك الأول ... صنعت صنف يولد captcha آليا باستخدام طريقة watermark يؤدي غرضي ... وسأضعه في المنتدى حالما أتأكد من سلامته 100% بإذن الله فربما يستفيد منه أحد الأخوة ...

دمت في حفظ الله...

تم تعديل هذه المشاركة بواسطة JAVA FOR ALL في 22 نوفمبر 2011 في 14:48

سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولاحول ولا قوة إلا بالله

get-one-91.gif

الخبــــــرة هي مـــــــــــا تحصل عليه عندمــــا لا تحصل على ما تريده....

#7

ضعه هنا وستجد أنا نضيف لك :)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8
علاء الصالحي كتب:

ضعه هنا وستجد أنا نضيف لك :)

تحياتي

على كل حال هذا هو الـ class ممكن استخدامه طبعا في تطبيق ويب او سطح المكتب ... واكيد مخالف لجميع مسلمات ترتيب وكتابة الاكواد :lol: ...

هو بلا شك يحتاج تعديل وتطوير لاني اخذته من ورشة التجارب مباشره إلى هنا :) لكن على كل حال يؤدي غرضي واذا احد من الاخوة ممكن يطوره أو يضيف إضافة أو لديه أفضل منه فنحن له شاكرون ....

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author ANB
 */
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import javax.swing.ImageIcon;
import java.awt.geom.Rectangle2D;

public class NewClass {

    private String water;
    private String coop;

    public String getCoop() {

        return coop;
    }

    public void setCoop(String coop) {
        this.coop = coop;
    }

    public String getWater() {
//          water = "SO8BK9";
        return water;
    }

    public void setWater(String water) {
        this.water = water;
    }

    /** Creates a new instance of NewJSFManagedBean */
    public NewClass() {
    }

    public void hoome() {
        try {


            // Random

            String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            String alphabet2 = "EFGHINTUVWOMXYPQRSJKABLZCD";
            String alphabet3 = "DEFGABMNOKLQRSJXYCHIZPTUVW";
            String alphabet4 = "KLEDBMNFYQGOAJCXZHIRSUVWPT";
            int character = (int) (Math.random() * 26);

            int character2 = (int) (Math.random() * 22);

            String s = alphabet.substring(character, character + 1);

            String s2 = alphabet2.substring(character, character + 1);

            String s3 = alphabet3.substring(character2, character2 + 1);

             String s4 = alphabet4.substring(character2, character2 + 1);

            String deeb = (character+ s4 + s + character2 + s2 + s3);

//            System.out.println(deeb);


            File file = new File("C:/cab.jpg");
            if (!file.exists()) {
                System.out.println("File not Found");
            }
            ImageIcon icon = new ImageIcon(file.getPath());
            BufferedImage bufferedImage = new BufferedImage(
                    icon.getIconWidth(), icon.getIconHeight(),
                    BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = (Graphics2D) bufferedImage.getGraphics();
            g2d.drawImage(icon.getImage(), 0, 0, null);
            AlphaComposite alpha = AlphaComposite.getInstance(
                    AlphaComposite.SRC_OVER, 0.5f);
            g2d.setComposite(alpha);
            g2d.setColor(Color.BLACK);
            g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
            g2d.setFont(new Font("Arial", Font.BOLD, 25));
//            String watermark = "YFU6D57";
//String watermark = this.getWater();
            String watermark = deeb;

            FontMetrics fontMetrics = g2d.getFontMetrics();
            Rectangle2D rect = fontMetrics.getStringBounds(watermark, g2d);
            g2d.drawString(watermark, (icon.getIconWidth() - (int) rect.getWidth()) / 2, (icon.getIconHeight() - (int) rect.getHeight()) + 2);
            g2d.dispose();
//            File fileout = new File("C:/alhmdollah.jpg");
            File fileout = new File("C:/Users/ANB/Documents/NetBeansProjects/ImageWatermarking/web/cab2.jpg");

            ImageIO.write(bufferedImage, "jpg", fileout);

            this.setCoop("cab2.jpg");

        } catch (IOException ioe) {
        }
    }
}

وهذه صفحة index.xhtml بها كود استدعائه كما هو معروف لديكم طبعا ...

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets





        <h:form accept="#{NewClass.hoome()}" >


                         <dir/>
               <h:graphicImage id="cv" width="140px" height="70px" url="#{NewClass.coop}"/> 

        </h:form>


    </h:body>
</html>

وهذه الصورة الأصلية للدمج التي قمت بصناعتها ( حاصله على براءة اختراع من هيئة نفسي وذاتي :lol: ) تقوم نقاطها بالاندماج تلقائيا مع نقاط النص لتمثل تشويه يعرقل التعرف الآلي على الصورة من برامج تحليل الصور نوعا ما ...

post-248645-042113600 1322567048_thumb.j

اتمنى ان اكون أفدتكم ولا تنسونا من صالح دعائكم ...

دمتم بحفظ الله....

المرفقات
cab.jpg

سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولاحول ولا قوة إلا بالله

get-one-91.gif

الخبــــــرة هي مـــــــــــا تحصل عليه عندمــــا لا تحصل على ما تريده....

#9
            File fileout = new File("C:/Users/ANB/Documents/NetBeansProjects/ImageWatermarking/web/cab2.jpg");

هذا مخالف إن كان هذا الكود سيستخدم في تطبيق ويب ...

إكتب ل tmp file أفضل

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