Jump to content

lolka84

User
  • Posts

    231
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by lolka84

  1. Привет!

    Есть функция:






    package ru.korshun.imgcrypto;

    import java.io.*;

    public class ImgCrypto {

    public static void main(String[] args) {

    ImgCrypto ic = new ImgCrypto();

    try {
    byte[] enc = ic.load();
    String e = ic.encode(enc);

    try (OutputStream out = new FileOutputStream("D:\\java\\ImgCrypto\\img\\image.jpg")) {
    out.write(ic.decode(e));
    }

    } catch (IOException e) { }

    }


    public byte[] load() throws FileNotFoundException, IOException {

    InputStream in = new FileInputStream("D:\\java\\ImgCrypto\\img\\20130826_103942.jpg");
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    byte[] buffer = new byte[32 * 1024];

    while (true) {
    int r = in.read(buffer);
    if (r > 0) { bout.write(buffer, 0, r); }
    else { break; }
    }

    bout.close();

    return bout.toByteArray();
    }

    //——————————————————-

    public final String encode(byte[] d) {
    if (d == null) return null;
    byte data[] = new byte[d.length+2];
    System.arraycopy(d, 0, data, 0, d.length);
    byte dest[] = new byte[(data.length/3)*4];

    // 3-byte to 4-byte conversion
    for (int sidx = 0, didx=0; sidx < d.length; sidx += 3, didx += 4) {
    dest[didx] = (byte) ((data[sidx] >>> 2) & 077);
    dest[didx+1] = (byte) ((data[sidx+1] >>> 4) & 017 | (data[sidx] << 4) & 077);
    dest[didx+2] = (byte) ((data[sidx+2] >>> 6) & 003 | (data[sidx+1] << 2) & 077);
    dest[didx+3] = (byte) (data[sidx+2] & 077);
    }

    for (int idx = 0; idx < dest.length; idx++) {
    if (dest[idx] < 26) { dest[idx] = (byte)(dest[idx] + 'A'); }
    else if (dest[idx] < 52) { dest[idx] = (byte)(dest[idx] + 'a' - 26); }
    else if (dest[idx] < 62) { dest[idx] = (byte)(dest[idx] + '0' - 52); }
    else if (dest[idx] < 63) { dest[idx] = (byte)'+'; }
    else { dest[idx] = (byte)'/'; }
    }

    for (int idx = dest.length-1; idx > (d.length*4)/3; idx--) { dest[idx] = (byte)'='; }

    return new String(dest);

    }

    public final String encode(String s) { return encode(s.getBytes()); }


    public final byte[] decode(String str) {
    if (str == null) { return null; }
    byte data[] = str.getBytes();
    return decode(data);
    }

    public final static byte[] decode(byte[] data) {
    int tail = data.length;
    while (data[tail-1] == '=') { tail--; }
    byte dest[] = new byte[tail - data.length/4];

    for (int idx = 0; idx <data.length; idx++) {
    if (data[idx] == '=') { data[idx] = 0; }
    else if (data[idx] == '/') { data[idx] = 63; }
    else if (data[idx] == '+') { data[idx] = 62; }
    else if (data[idx] >= '0' && data[idx] <= '9') { data[idx] = (byte)(data[idx] - ('0' - 52)); }
    else if (data[idx] >= 'a' && data[idx] <= 'z') { data[idx] = (byte)(data[idx] - ('a' - 26)); }
    else if (data[idx] >= 'A' && data[idx] <= 'Z') { data[idx] = (byte)(data[idx] - 'A'); }
    }

    int sidx, didx;
    for (sidx = 0, didx=0; didx < dest.length-2; sidx += 4, didx += 3) {
    dest[didx] = (byte) (((data[sidx] << 2) & 255) | ((data[sidx+1] >>> 4) & 3));
    dest[didx+1] = (byte) (((data[sidx+1] << 4) & 255) | ((data[sidx+2] >>> 2) & 017));
    dest[didx+2] = (byte) (((data[sidx+2] << 6) & 255) | (data[sidx+3] & 077));
    }
    if (didx < dest.length) { dest[didx] = (byte) (((data[sidx] << 2) & 255) | ((data[sidx+1] >>> 4) & 3)); }
    if (++didx < dest.length) { dest[didx] = (byte) (((data[sidx+1] << 4) & 255) | ((data[sidx+2] >>> 2) & 017)); }

    return dest;

    }

    }


    Мне же нужно ее видоизменить для того, что бы можно было отдельно:

    а) взять jpg, закодировать и сохранить на диск кодированный файл.

    б) взять закодированный файл и получить jpg

     

    Собственных знаний на это к сожалению пока не хватает :(

    Очень надеюсь, что подскажут, как возможно реализовать мою задачу.

  2. Спасибо.

    Вдогонку вопрос: при "рисовании" формы создается неизменяемый код. Можно ли его как-то все-таки менять ?

  3. Привет, подскажите, почему "нарисованная" форма в NetBeans'е отличается от формы, которая вылазит после запуска проекта ?

     

    6d63803033cfefd62f7d493fdb2974e7.jpg

  4.  

    пустой

    уберите и будет нормально

     Это раз.

    В веб-инспекторе можно было наблюдать, что как раз у <p> идут большие отступы, из-за чего и распирало. 

    И мне интересно, каким образом он влияет на vertical-align?

     

    Да что с того то, что он пустой, вы вот мне на инспектор всё киваете, а сами не видели в нем что ли, какие свойства для <p> заданы ?

    Специально для вас: http://habrahabr.ru/post/73113/ надеюсь, сможете провести параллели.

    А уж где и какие отступы вы у него умудрились увидеть - это для меня точно загадка и большой вопрос, кто из нас не умеет пользоваться инспектором :)

  5. http://jsfiddle.net/NTsQW/3/ - кривое выравнивание

    http://jsfiddle.net/NTsQW/4/ - нормальное выравнивание

    Понятно, что там table-cell, а тут inline-block, но в чем принципиальное отличие то, почему inline-block коверкает строки, если в них есть переносы слов ? 

     

  6. А как он по вашему мнению должен отображаться? :-)

    И еще у вас там какой то пустой <p></p> уберите и будет нормально.

    Научитесь уже пользоваться веб-инспектором или фаербагом. Жизнь станет проще.

    По моему мнению он должен отображаться так же, как обычно отображается обычный многострочный текст. Откуда тут появляется расстояние между строками при переносе ? 

    Пустой <p></p> служит для вполне конкретных целей, в данном случае для того, что бы vertical-align:middle; работал так, как от него требуется.

    Веб-инспектором пользоваться умею, не помогает в данном случае, хоть убей не пойму, откуда расстояние между строками берется.

    Если кто подскажет, буду очень благодарен.

  7. Всем привет.

    Помогите подружить show\hide и IE7, а ? Второй час бьюсь - не работает, хоть убей :(

     


    В горизонтальном меню выпадающие пункты - в IE7 не работает совсем :(

    Скрипт элементарный:

     



    $("div.menu li").hover(function () {

    clearTimeout($.data(this,"timer"));
    $("ul",this).stop(true,true).show(400);

    }, function () { $.data(this,"timer", setTimeout($.proxy(function() { $("ul",this).stop(true,true).hide(400); }, this),200)); });


     

    Очень надеюсь на вашу помощь!

  8. Всем привет, что-то туплю, скажите, правильно ли понимаю, что спрайты получится использовать только если мы задаем ширину и высоту объекта на странице и фоном на весь этот размер накладываем часть спрайта, равную этому размеру, позиционируя его с помощью background-position ?

     

    Т.е. в случае, если мы просто накладываем на кнопку файл с картинкой (не спрайт, а именно отдельный файл), позиционируем его 0% 50% к примеру  (с левой стороны посередине), а для свойства :hover подкладываем уже другой файл по такому же принципу - в этом случае каким-то образом эти два файла в спрайт собрать получится ?

     

    Надеюсь понятно объяснил :)

  9. Всем привет.

    Есть простая верстка: http://test.premier96.ru/main.html

    Говорят (сам сабжевым девайсом не обладаю, поэтому воочию посмотреть не могу), что на айпаде кое-что едет, даже картинку дали как оно едет: http://test.premier96.ru/photo.jpg

    Проблема даже не в том, что вообще мало понятно, почему оно так вот едет, а в том, что ВСЕ онлайн показометры сайтов на моб. устройствах ничего подобного не показывают, там все ок. Может у человека с браузером на девайсе фигня какая-то происходит ?

    У кого айпад есть, гляньте, как у вас отображается или кто-то может просто подскажет, в чем может быть дело ?

    Заранее благодарю!

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy