Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: WriteImages как в папку то положить и имя поменять

Друзья, подскажите как с помощью writeImages сохранить изображение обрезанное в папку? Все режет, но режет исходное изображение, а как изменить имя  или в новую папку положить? Не понимаю, все перепробовал :(

Вот кусок, ищет изображение в папке и режет его, он работает, но только с исходным изображением и портит его, а нужно сделать копию меньше рядом, куда копать?
Код

$dir  = $modx->getOption('base_path') . 'uploads/'.$id_user.'/';      //original images
$files = glob($dir . "*.jpg"); 
 
foreach($files as $images) {
    
  $image = new Imagick ($images);
  $imageprops = $image->getImageGeometry();
  $image->resizeImage(534,280, imagick::FILTER_BOX, 0.9, true);
  $image->writeImages($images, true);

}
return;

Ответ:
Так у вас во writeImages указан исходник, он в него и пишет, попробуйте там прописать другое имя файла

Код

$dir  = $modx->getOption('base_path') . 'uploads/'.$id_user.'/';      //original images
$files = glob($dir . "*.jpg"); 
 
foreach($files as $images) {
  $destination = $modx->getOption('base_path') . 'resized/' . basename($images);
  $image = new Imagick ($images);
  $imageprops = $image->getImageGeometry();
  $image->resizeImage(534,280, imagick::FILTER_BOX, 0.9, true);
  $image->writeImages($destination, true);
}
return;

Вопрос: Вывод фотографий из папки (вернуть массив)

Домашнее задание.

0. Создайте в своем проекте папку, положите в нее несколько файлов-изображений.
1. Научитесь получать список файлов из заданной папки. Проверьте.
2. Выведите на экран список всех файлов из созданной папки.
3. Выведите с помощью HTML эти изображения.


PHP
1
2
3
4
5
6
7
8
9
10
11
function listdir ($dir) {
    if ($handle = opendir($dir)) {
    echo "Директория: $dir\n";
    while (false !== ($entry = readdir($handle))) {
        $entry = iconv ("windows-1251", "utf-8", $entry);
        echo '<img src="/homework/image/'.$entry.'" alt="text">';
    }
    closedir($handle);
}
}
?>
Подскажите как вернуть массив с тегами <img>?
Ответ: Видимо я не правильно вопрос задал. Хотя...
PHP
1
2
3
4
5
6
7
8
9
10
11
function listdir ($dir){
    $result = [];
    if ($handle = opendir($dir)) {
        while (false !== ($entry = readdir($handle))) {
            $entry = iconv ("windows-1251", "utf-8", $entry);
            $result[] = '<img src="/homework/image/'.$entry.'" alt="text">'.'<br>';
        }
        closedir($handle);
    }
    return $result;
}
Вопрос: Как в DLL положить иконку

Добрый день!
Подскажите пожалуйста, как в DLL положить иконку.

Код имеет следующий вид

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include "resource.h"
__declspec(dllexport) HICON hIcon;
BOOL APIENTRY DllMain(HMODULE hModule, 
                      DWORD ul_reason_for_call,
                      LPVOID lpReserved
                      )
{
   switch (ul_reason_for_call)
   {
   case DLL_PROCESS_ATTACH:
      hIcon = LoadIcon(hModule, MAKEINTRESOURCE(IDI_ICON1));
      break;
   case DLL_PROCESS_DETACH:
      DestroyIcon(hIcon);
      break;
   }
   return TRUE;
}
в resource.h лежит это

C++
1
#define IDI_ICON1   "C:\\Documents and Settings\\Hello\\Мои документы\\Visual Studio 2010\\Projects\\DLL_Icons\\DLL_Icons\\tool box.ico"
но по идеи вместо пути должно лежать число.

в папку ресурса иконку добавил

как правильно решить эту задачу ?
Ответ: Решение для DLL аналогично решению для .exe.

В данном случае надо:
1. Убрать из проекта resource.h и tool box.ico.
2. Клацнуть правой кнопкой по "папке" Файлы ресурсов.
3. Выбрать Добавить->Ресурс.
4. Нажать кнопку Импорт.
5. Выбрать файл tool box.ico.
6. В проекте появится 3 файла: resource.h (новый), DLL_Icons.rc и tool box.ico.
7. Пересобрать проект.

(у меня английская версия студии, поэтому в русской названия могут немного отличаться от написанных)
Вопрос: Настроить рабочую папку/открыть файл asm

Здравствуйте. Делаю первые шаги в программе Tasm и в ассемблере в целом. У меня есть файл hello.asm. Где я должен расположить его, чтобы он отработал? Или же я должен как то указать путь к рабочей папке? Извиняюсь конечно, но я вообще нихрена не понимаю...вот у меня лежит файл в корне диска C. Я открываю его и получаю окно на скриншоте №1. Положил этот файл в папку Tasm, получаю окно на следующем скрине. И так в любой папке. Хотелось бы увидеть/услышать/прочитать подробную инструкцию о том, как настроить среду для работы.
P.S Google ничего дельного не посоветовал
Ответ: Кротяка, для начала, тебе надо узнать путь к двум исполняемым файлам:tasm.exe и
tlink.exe
. Далее предполагается, что эти два файла, а также ASM-файл находятся в корне диска "C:". Затем тебе надо "скормить" ASM-файл tasm'у
Код Code
1
c:\>tasm hello.asm
Должно получиться что-то вроде Настроить рабочую папку/открыть файл asm и должен быть создан файл hello.obj. Проверить его наличие можно командой DIR
Настроить рабочую папку/открыть файл asm
Далее получившийся OBJ-файл надо "скормить" tlink'у. Тут есть один момент, на который надо обратить внимание. Если исходный файл писАлся для создания COM-файла, то в командной строке необходимо указать ключ /t
Код Code
1
c:\>tlink /t hello.obj
Настроить рабочую папку/открыть файл asm
Если исходный файл писАлся для создания EXE-файла, то просто запускаем
Код Code
1
c:\>tlink hello.obj
Проверяем наличие исполняемого файла:Настроить рабочую папку/открыть файл asm
Запускаем исполняемый файл:Настроить рабочую папку/открыть файл asm

PS: Всё вышеперечисленное верно при отсутствии ошибок. Ну и исходник COM-файла:
Код ASM
1
2
3
4
5
6
7
8
9
10
11
.MODEL TINY
.CODE
    org 100h
Begin:
    mov dx, offset MsgHello
    mov ah, 9
    int 21h
    ret
.DATA
MsgHello    db  'Hello World!', 0dh, 0ah, 24h
    END Begin
Вопрос: Как подключить dll из корневой папки проекта?

Есть библиотека System.IO.Compression.FileSystem.dll в корневой папке, пишу в проекте
Код C
1
[DllImport("System.IO.Compression.FileSystem.dll")]
А VS подчеркивает, те строки, которые используют эту библиотеку. Она рабочая 100% , т.к. при использовании ее через Обозреватель решений\ Добавить ссылку все работает. Как сделать что бы работало из папки корневой?
Ответ:
Сообщение от IMovie
если кидаю в папку
Положите ее в папку с проектом, добавьте ссылку оттуда. Единственное, не могу сказать, будет ли это работать...
Вопрос: Подключение библиотеки dll из другой папки в Delphi

Есть отдельная папка в Temp. Туда при запуске программы с ресурсов распаковываются библиотеки ssleay32.dll и libeay32.dll для Synapse. Но никак не удается подключить их с той директории. Если только положить рядом с программой, то все работает без проблем. Путь указываю в LoadLibrary. Даже при использовании пути D:\***.dll все равно не работает. Что я делаю не так?
Ответ: Alexzzy
посмотрел, и я так понял, что первая библиотека не грузится потому, что она во время загрузки начинает подгружать зависимые библиотеки по пути, где находится программа, вместо необходимого мне.
 
Добавлено:
Изменил рабочую папку программы с помощью SetCurrentDir(), теперь даже путь библиотекам не нужно указывать, они сами оттуда загружаются.
 
Всем спасибо за помощь! Проблема решена!
Вопрос: Как поменять иконку исполняемого файла exe?

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

но тоже как-то не всегда. если папку в корне диска размещаешь то сразу нормально отображает новый значок. а если папку вложить несколько раз да еще названия у папок русские то не всегда отображает новый значок. видимо глюки винды 10

Добавлено через 10 минут
получается так. меняешь иконку. компилируешь. в папке новая иконка не отображается на файле exe. перезагружаешь комп. заходишь в папку - все на месте - новая иконка на файле exe отображается. скорее всего глюк винды 10
Вопрос: Очередь. Основные функции для работы с очередями(взять и положить)

Привет.
Реализовал несколько функций для очереди. Появилась проблема. Если положить элемент, а затем его вытащить( очередь опустошится), а затем опять положить, то указатель на head(начало очереди) станет NULL, а в tail(ляжет элемент). А я хочу, чтобы если у меня один элемент в очереди, то указатели head и tail оба указывали на него. Подскажите, пожалуйста где ошибка(не обращайте там внимание на тип информационных полей, это мне для лабораторной надо).
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
struct btree {
    char elem;
    btree *left, *right;
};// объявление бинарного дерева
struct QUEUE
{
    btree *elem;
    QUEUE *next;
};// список
struct quest {
    QUEUE *head = NULL, *tail = NULL;
};// очередь
 
void push_back(btree *tree, quest *X)// положить в конец
{
 
    if (X->tail != NULL)// не пустая
    {
        QUEUE *temp = new QUEUE;
        temp->elem = tree;
        temp->next = NULL;
        X->tail->next = temp;
        X->tail = temp;
    }
    else
    {
        X->tail = new QUEUE;
        X->tail->elem = tree;
        X->tail->next = NULL;
        X->head = X->tail;
    }
}
 
btree *pop_front(quest *X)// взять с начала
{
    if (X->head != NULL)
    {
        QUEUE *temp = X->head;
        btree *a = X->head->elem;
        X->head = X->head->next;
        delete temp;
        return a;
    if (isqueueempty(X)==1)
    {
        X->head = X->tail;
    }
 
    }
    else
        return NULL;
}
Ответ: Всем спасибо.
Проблема решена, если интересно, то вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace::std;
struct btree {
    char elem;
    btree *left, *right;
};
struct QUEUE
{
    btree *elem;
    QUEUE *next;
};
struct quest {
    QUEUE *head = NULL, *tail = NULL;
};
 
int isqueueempty(quest *X)// пустая ли очередь
{
    if (X->head == NULL)
        return 1;
    else return 0;
}
// проверка на пустоту
void push_back(btree *tree, quest *X)// положить в конец
{
 
    if (X->head != NULL)// не пустая
    {
        QUEUE *temp = new QUEUE;
        temp->elem = tree;
        temp->next = NULL;
        X->tail->next = temp;
        X->tail = temp;
    }
    else
    {
        X->tail = new QUEUE;
        X->tail->elem = tree;
        X->tail->next = NULL;
        X->head = X->tail;
    }
}
// положить в конец
btree *pop_front(quest *X)// взять с начала
{
    if (X->head != NULL)
    {
        QUEUE *temp = X->head;
        btree *a = X->head->elem;
        X->head = X->head->next;
        delete temp;
        return a;
    if (isqueueempty(X)==1)
    {
        X->head = X->tail;
    }
 
    }
    else
        return NULL;
}
// взять с начала
btree *build_tree(FILE*input)
{
    char sym;
    btree *d;
        fscanf_s(input,"%c", &sym);
        switch (sym)
        {
        case'(': 
        {
            d = new btree;
            fscanf_s(input, "%c", &sym);
            d->elem = sym;
            d->left = build_tree(input);
            d->right = build_tree(input);
            fscanf_s(input, "%c", &sym);
            return d;
        }
        case'0':
            return NULL;
        case',':
            build_tree(input); 
            break;
        }
}
Вопрос: Как переименовать папку с исходниками?

Ребята, подскажите, пожалуйста, как переименовать папку с исходниками (с файликами форм, Program.cs и т.д.), если проєкт уже создан? Имя solution-а я поменял, а вот папку как переименовать не знаю.

Прилагаю картинку с моим примером: как переименовать папку TM?
Ответ: Для VS2015:
  1. Закройте решение в студии (File -> Close solution)
  2. Переименуйте папку с проектом
  3. Откройте решение в студии — она пожалуется, что не может найти проект и проект будет помечен как Unavailable.
  4. Выделите проект в обозревателе решений и в окошке свойств (F4 по умолчанию) измените путь на переименованную папку.
  5. Правокликните на проект в обозревателе решений и кликните на Reload Project
  6. Сохрание изменения в решении (Ctrl+S по умолчанию).
Вопрос: Доступ к файлу не в папке приложения

Добрый день.

В общем вот какая проблема. Есть сервер. На сервере папка. В неё складывает pdf-файлы одна десктопная программа. Далее, на этом же сервере крутится веб-приложение, которое доступно только через vpn. Юзеры, которые пользуются этим веб-приложением, должны просматривать pdf-файлики, которые складывает в ту папку десктопная программа.

На определённой aspx-странице указываю ссылку на нужный pdf-файл в стиле file://folder/42.pdf. Работает в ie, но не работает в хроме, тыркаешь на ссылку, но ничего не происходит (в логе "Not allowed to load local resource"). Насколько я понял, что-то связано с безопасностью. Хорошо, есть какой-нибудь более безопасный способ это сделать? Вроде как-то через HttpModule можно, но я так и не понял, как именно.
Ответ:
monstrU
Vixler,

подключи ее в iis как виртальную папку
и ссылки поменяй на http://site/folder/42.pdf
и дай права юзеру пула на чтение этой папки.